当前位置:   article > 正文

Day04|逻辑运算符、位运算符及三元运算符_有一个假就都假

有一个假就都假
逻辑运算符
  • 逻辑运算符 &&, ||, !。
  • && 有一个为假,则为假
  • || 有一个为真,则为真
  • ! 非
package operator;

public class Demo1 {
    public static void main(String[] args) {
        //逻辑运算符 && || !
        /*
        && 有一个为假,则为假
        || 有一个为真,则为真
        !  非
        **/
        //短路运算
        int a=5;
        boolean b=(a<4)&&(++a>5);//只要前边条件错误,后边就不再执行。
        System.out.println(b);
        System.out.println(a);

        boolean c=false;
        boolean d=true;
        System.out.println("c&&d:"+(c&&d));
        System.out.println("c||d:"+(c||d));
        System.out.println("!(c&&d):"+!(c&&d));
    }
}
运行结果:
false
5
c&&d:false
c||d:true
!(c&&d):true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
位运算
    A =0011 1100
    B =0000 1101
    A&B=0000 1100
    A|B=0011 1101
    ~B=1111 0010
    怎样算2*8最快? 位运算
    <<左移 *2
    >>右移 /2
    0000 0000 0
    0000 0001 1
    0000 0010 2
    0000 0011 3
    0000 0100 4
    0000 1000 8
    0001 0000 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

由此可见乘2,相当于左移1位。

package operator;

public class Demo2 {
    public static void main(String[] args) {
        //位运算符
        /*
        A =0011 1100
        B =0000 1101
        A&B=0000 1100
        A|B=0011 1101
        ~B=1111 0010
        面试:怎样算2*8最快? 位运算
        <<左移 *2
        >>右移 /2
        0000 0000 0
        0000 0001 1
        0000 0010 2
        0000 0011 3
        0000 0100 4
        0000 1000 8
        0001 0000 16
        * */
        System.out.println(2<<3);//左移3位 2*2^3
        System.out.println(16>>2);
    }
}
运行结果:
16
4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
三元运算符
  • 三元运算符

    x ? y : z 如果x为真,则执行y;否则执行y。

package operator;

public class Demo3 {
    public static void main(String[] args) {
        //字符串连接符 + ,如果有一侧为String类型,则会将另一侧的操作数转换为String类型再连接
        int a = 10;
        int b = 20;
        //面试,""+ 与 +"" 区别
        System.out.println("" + a + b);
        System.out.println(a + b + "");//如果""在后面,前方依旧会进行运算

        //三元运算符
        // x ? y:z  如果x为真,则执行y;否则执行y
        int score = 70;
        String type = score > 60 ? "及格" : "不及格";
        String type1 = score > 80 ? "及格" : "不及格";
        System.out.println(type);
        System.out.println(type1);
    }

}
运行结果:
1020
30
及格
不及格
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/175787
推荐阅读
相关标签
  

闽ICP备14008679号