ペ悠然杰 发表于 2022-10-7 22:54:57

30天JAVA入门到入土-9day

自动类型转换:在JAVA进行赋值或运算时,精度小的类型自动转换为精度大的数据类型
                        数据类型 按 精度(容量) 排序两条线不发生自动转换
                              char -> int -> long -> float -> double
                              byte-> short-> int-> long-> float-> double
                              char 、 byte 、 short 三个在进行运算时 会直接提升至 int
                                        基本数据类型:一共8种 【所占字节】
                                                1.数值型:
                                                      整数类型(byte【1】,short【2】,int【4】,long【8】)
                                                      浮点(小数)类型(float【4】,double【8】)
                                                2.布尔型(boolean【1】),存放 true , false
                                                3.字符型(char【2】),存放单个字符 ‘ a ’
                                        1 byte =8 bit (bit 是计算机最小单位字节是最小基本单位)

原码、反码、补码

1、二进制的最高位是符号位 :0表示正数 1表示负数
2、正数的原码、反码、补码都一样(正数三码合一)
3、负数的反码 = 他的原码符号位不变,其他位取反(0->1 , 1->0)
4、负数的补码 = 他的反码 + 1,负数的反码 = 负数的补码 - 1
5、0 的反码,补码都是 0
6、java 没有无符号数
7、在计算机运算的时候,都是以补码的方式来运算的
8、当我们看运算结果的时候,要看他的原码(重点)



位运算符
按位与 & :两位为1 结果为1 否则为0                        (全1为1 否则0)
按位或 | : 两位有一个为1 结果为1 否则为0                (有1为1 否则0)
按位异或 ^ : 两位一个为0 一个为1 结果为1 否则为0   (不一样为1 否则0)
按位取反~ :0变11变0
算数右移 >> : 低位溢出 符号位不变 并用符号位补溢出的高位
算数左移 << : 符号位不变 低位补 0
逻辑右移 / 无符号右移 >>> :低位溢出 高位补 0


do while 循环控制

//DoWhile 输出1-100的和
public class DoWhile{
        public static void main(String[] args){
        int i = 1;//循环变量初始化
        int sum = 0;
        do{
                sum += i;
                //循环执行语句
                System.out.println( sum );
                //循环变量迭代
                i++;
        }while(i<=100);
        System.out.println("退出do while" );
        }
}

/*题目:
统计三个班的成绩情况, 每个班有5个学生
求出各个班的平均分和所有班级的平均分(学生的成绩从键盘输入)
统计三个班及格人数,每个班有5个同学*/
/*思路:
        化繁为简
                1、先计算一个班,5个学生成绩 使用for
                2、创建一个Scanner对象,接受用户的输入
                3、得到该班级平均分 定义一个Double sum 把该班5个学生的成绩累计

                1、统计三个班(每个班5个学生)的平均分
                2、求出所有班级的平均分 定义一个变量 double totalScore 累计所有学生的成绩
                3、循环结束后 TotalScore/(3*5)

                1、定义一个变量 int = PassNum = 0; 当有一个学生成绩>=60PassNum++
                2、如果 >=60PassNum++
                */

import java.util.Scanner;               
public class MoForExercise01{
        public static void main(String[] args){
                Scanner myScanner = new Scanner(System.in);
        double TotalScore = 0;//累计所有学生的总分
        int PassNum = 0;//累计及格的人数
        for(int i=1;i<=3;i++){
                double sum = 0; //一个班级的总分
                for(int j = 1; j <= 5;j++){
                        System.out.println("请输入第" + i + "个班的第"+ j +"个学生的成绩");
                        double score = myScanner.nextDouble();
                        if(score >= 60){//当有一个学生大于60 passnum++
                                        PassNum++;
                        }
                        sum += score;//累计成绩
                        System.out.println("成绩为" + score);
                }
                System.out.println("sum=" + sum + "平均分=" + ( sum / 5 ));
                TotalScore += sum;
                }
                System.out.println("三个班总分=" + TotalScore + "平均分="+TotalScore/15 );
                System.out.println("及格人数="+PassNum );
        }
}

//空心金字塔

public class Stars{
        public static void main(String[]args){
                for(int i = 1; i<=5; i++){ //五层金字塔
                        for(int k = 1; k <= 5-i ; k++){
                                System.out.print(" ");//打印前面的空格
                        }
                        for(int j = 1; j <= 2 * i - 1 ; j++){

                                if( j == 1 || j == 2 * i - 1 || i==5 ){
                                System.out.print("*");//打印星星
                        }else{
                        System.out.print(" ");
                  }
                }
                System.out.println(" ");//换行
                }
        }
}


跳转控制语句 - break

基本语法:

{....
        break;
........
}









页: [1]
查看完整版本: 30天JAVA入门到入土-9day