Day10逻辑与运算

1. 与(and) 或(or) 非(取反)

public static void main(String[] args){
    //与(and) 或(or) 非(取反)
    boolean a = true;
    boolean b = false;
​
    System.out.println("a && b :" + (a&&b));  //逻辑与运算:两个变量都为真,结果才为真true
    System.out.println("a || b:" + (a||b));   //逻辑或运算:两个变量有一个为真,则结果才为true
    System.out.println("! (a&&b):" + !(a&&b));//如果是真,则变为假,如果为假,则变为真

2. 短路运算

//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);   //结果false
System.out.println(c);   //结果5(如果程序没有短路,c++这行代码执行完后,c为7)

由于(c<4)为假,在与(and)运算中进行短路运算,结果直接输出为false。

因此(c++<4)没有执行,c为5

3. 位运算

public static void main(String[] args){
    /*
   A = 0011 1100
   B = 0000 1101
   
   &(与运算)对应位都为1时,运算后位数才是1否则为0
   A&B = 0000 1100
   |(或运算)对应位都为0时,运算后才是0,否则为1
   A|B = 0011 1101
   ^(异或运算)对应位相同则位0,否则为1
   A^B = 0011 0001
   ~(取反)对应位完全相反
   ~B = 1111 0010 ~A = 1100 0011
   
   <<左移运算和  >>右移运算
   举例 2*8 = 16   即 2*2*2*2
   则<<左移为在原有基础上*2  而>>右移为原有基础上/2
    */
}

位运算主要和二进制有关,效率高

4. 拓展运算符

public static void main(String[] args){
    int a = 10;
    int b = 20;
     a += b;//a = a+b
     a -= b;//a = a-b
     System.out.println(a);//30
     System.out.println(b);//-10
​
     //字符串连接符 + , String
    System.out.println(""+a+b);//""是字符串类型,结果是1020;如果字符串在后面的话,则前面正常运算
}

5. 三元运算符

public static void main(String[] args){
    //x ? y : z
    //如果x==true,则结果为y,否则结果为z
    int score = 80;
    String type = score < 60 ?"不及格": "及格";
    System.out.println(type);
}

运算更加简便,也可以根据if来做

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值