Java学习(第二日)

运算符之位运算符(二进制运算符)

 //运算符
 //位运算符  二进制运算符
 int result=0;

 //按位与运算 & A&B
 //将A、B转成二进制 右侧上下对齐,两者都为1,结果才为1,否则为0
 result=12&11;
 System.out.println(result);//8

 //按位或运算 | A|B
 //将A、B转成二进制 右侧上下对齐,两者有一个为1,结果为1;两个都为0,结果才为0
 result=12|11;
 System.out.println(result);//15

 //按位异或运算符 ^ A^B
 //将A、B转成二进制,右侧对其上下比较,两者不同则为1,相同则为0
 result=12^11;
 System.out.println(result);//7
 //反码运算
 //反码  ~  将二进制中的0换成1,1换成0
 result=~11;
 System.out.println(result);//-12
 //移位运算 左移<<
 result=3<<2;
 System.out.println(result);//12
 //右移>>  左侧补符号位
 result=-1>>2;
 System.out.println(result);//-1
 result=3>>2;
 System.out.println(result);//0
 // >>>  空出来的位置补0(注意与“>>”区分)
 result=-1>>>1;
 System.out.println(result);//2 147 483 647

 //最快的计算方式是移位
 result=3*8;//  3×2^3=24
 result=3>>3;// 24
 
//  & |  也可以对Boolean值进行计算,得到Boolean值
boolean bool= true & false;//&和&&运算结果是一样的
a=12;b=12;
bool=a++<12 &  b++>12;//没有短路现象  a=13,b=13
bool=a++<12 && b++>12;//存在短路现象  a=14,b=13

两数交换的三种方法

 //第三变量交换
 int a,b;
 a=11;
 b=22;
 int t;
 t = a;// t=11
 a = b;// a=22
 b = t;// b=11
 //加法交换
 a=11;
 b=22;
 a=a+b;//  a=33 b=22
 b=a-b;//  a=33 b=11
 a=a-b;//  a=22 b=11
 //异或运算交换
 a=11;
 b=22;
 a=a^b;//  a=29 b=22
 b=a^b;//  a=29 b=11
 a=a^b;//  a=22 b=11

流程控制

// if……else……
int score=(int) (Math.random()*100);
if(score>=60){
    System.out.println("恭喜及格了");
}else {
    System.out.println("不及格");
}

//if……else if……
Scanner sc = new Scanner(System.in);
System.out.println("请输入成绩(0~100):");
int score = sc.nextInt();
if (score >= 85) {
    System.out.println("优秀");
} else if (score >= 70) {
    System.out.println("良好");
} else if (score >= 60){
    System.out.println("及格");
} else if (score < 60){
    System.out.println("不及格");
}
sc.close();

//switch case
//switch 匹配某一个量的值,如果匹配到某一个case项,就从这个case项开始运行
//运行到break;或者代码块结束
//所有的case项都没有匹配成功才会执行default;
/*注意 1  case项和default的顺序可以是错乱的,但是执行顺序不会变
       2  switch 可以匹配的类型  byte short int char String enum(枚举)*/

Scanner sc = new Scanner(System.in);
System.out.println("请输入月份:");
int a = sc.nextInt();
switch(a){
    case 1,2,3:
        System.out.println("春季");
        break;
    case 4,5,6:
        System.out.println("夏季");
        break;
    case 7,8,9:
        System.out.println("秋季");
        break;
    case 10,11,12:
        System.out.println("冬季");
        break;
    default:
        System.out.println("没有这个月份");
        break;
}
sc.close();
public class Test6 {
    public static void main(String[] args) {
        //循环  while for
        /*while (循环条件){
            循环体
        }*/
        char i = 'a';
        while (i <= 'd') {
            System.out.println(i);
            i++;
        }
        //do……while至少执行一次循环体
        do {
            System.out.println(i);
            i++;
        }while (i <= 'z');
        //for循环
        for (int j = 0;j<5;j++) {
            System.out.println(j+1);
        }
        int cat=100;
        int mouse=(int)(Math.random()*120);
        int count=0;
        while (cat>mouse) {
            count++;
            mouse=(int)(Math.random()*120);
        }
        System.out.println("猫一共抓了"+count+"只老鼠");
    }

}
//流程控制语句 break; continue;
        for(int j= 1;j <=100;j++){
            if(j % 7 == 0){
                //break;//结束所在循环体
                continue;//跳过本次循环
            }
            System.out.println(j);
        }
        a: for(int x= 1;x <=100;x++){
            for(int y= 1;y <=100;y++){
                for(int z= 1;z <=100;z++){
                    if(z==50){
                        break a;
                    }
                }
            }
        } //break;跳过本次循环
        boolean bool = true;
        for(int x= 1;bool && x <=100;x++){
            for(int y= 1;bool && y <=100;y++){
                for(int z= 1;bool && z <=100;z++){
                    if(z==50){
                        bool = false;
                    }
                }
            }
        }//使用boolean值跳出循环

        //没有结束循环的条件:死循环;之后不能写其他代码
        //永远达不到结束循环的条件:无限循环;之后可以编写其他代码
        /* int a=0;
        while(a<1000){}//无限循环
        while(true) {}//死循环
        for(;;){

        }//死循环*/

数组

public class Test8 {
    public static void main(String[] args) {
        //数组  有序的元素序列
        //定义
        int[] arr = new int[10];//动态  长度定义数组 [10]代表可以存放10个元素
        int[] arr2 = {4,5,6,7,8,9};//静态
        int[] arr3 = new int[]{4,5,6,7,8,9};//静态
        /*数组的限定
        1.只能存放指定类型的数据
        2.数组长度是不可变的*/

        //使用数组中的元素 下标从0开始
        System.out.println(arr3[2]);
        //设置元素的值
        arr3[0]=99;
        System.out.println(Arrays.toString(arr3));
        //获取数组的长度
        System.out.println(arr.length);
        //打印数组中的所有元素
        for (int i = 0; i < arr3.length; i++) {
            System.out.println(arr3[i]);
        }
        //二维数组
        int[][] arr4 = {{1,2,3},{4,5,6},{7,8,9}};
        int[][] arr5 = new int[3][2];
        System.out.println(Arrays.deepToString(arr4));
        //二维数组的限定  一维数组的个数不可变,但是一维数组可变
        arr4[1]=new int[]{1,2,3};
        System.out.println(Arrays.deepToString(arr4));
        for (int i = 0; i < arr5.length; i++) {
            for (int j = 0; j < arr5[i].length; j++) {
                arr5[i][j]=(int)(Math.random()*100);
            }
        }
        System.out.println(Arrays.deepToString(arr5));
        //数组下标不可越界
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值