• 逻辑运算符


    &&和&的区别(与运算)

    &&(短路与)

    前后两个操作数必须都是true才返回true,否则返回false。

    1 //5 > 3 返回 true , '6' 转换为整数 54, '6' > 10 返回 true, 求与后返回true 
    2 
    3 System.out.println(5 > 3 && '6' > 10);
    1 int i = 4;
    2  if ((i++ > 6) && (i++ < 9)) {
    3  System.out.println(i);
    4  }
    5  System.out.println(i) ;

    &(不短路与)

    无论左边是false还是true,右边都执行。

    1 int i = 4;
    2 if ((i++ > 6) & (i++ < 9)) {
    3 System.out.println(i);
    4 }
    5 System.out.println(i);

    ||和|的区别(或运算)

    ||(短路或)

    只要两个操作数中有一个是true,就可以返回true,否则返回false。

    1 //4 > 5 返回 true, 'c' > 'a' 返回true, 求或后返回true
    2 
    3 System.out.println(4 >=5 || 'c' > 'a');
     1 //4 > 5 返回 true, 'c' > 'a' 返回true, 求或后返回true
     2  
     3  System.out.println(4 >=5 || 'c' > 'a');
     4  
     5  //定义变量c,d,并为连个变量赋值
     6  int c = 5;
     7  int d = 10;
     8  //对 c > 4 || d++ > 10 求或运算
     9  if (c > 4 || d++ > 10) {
    10  //输出c的值是5,d的值是10
    11  System.out.println("c的值是:" + c + ",d的值是:" + d);
    12  }

    |(不短路或)

    无论左边是false还是true,右边都会执行。

    1 //定义变量a,b,并为连个变量赋值
    2 int a = 5;
    3 int b = 10;
    4 //对 a > 4 和 b++ > 10 求或运算
    5 if (a > 4 | b++ > 10) {
    6 //输出a的值是5,b的值是11
    7 System.out.println("a的值是:" + a + ",b的值是:" + b);
    8 }

    !(非)

    只需要一个操作数,如果操作数为true,则返回false;如果操作数为false,则返回true。

    1 //直接对false求非运算,将返回true
    2 
    3 System.out.println(!false);

    ^ (异或)

    当两个操作数不同时才返回true, 如果两个操作数相同则返回false。

    1 //4 >=5返回false,'c'>'a'返回true,两个不同数的操作数求异或返回true
    2 
    3 System.out.println(4 >= 5 ^ 'c' > 'a');
  • 相关阅读:
    Cygwin一些设置总结!
    【补题】牛客58矩阵消除【数据水的一匹,算法:二进制枚举】
    【补题】牛客58E题(数学)
    [补题]牛客练习56,迷宫【orz】
    【补题】牛客58E题(数学)
    判断两个二叉树是否相同
    判断两个二叉树是否相同
    利用费马小定理求逆元
    [补题]牛客练习56,迷宫【orz】
    【补题】牛客58矩阵消除【数据水的一匹,算法:二进制枚举】
  • 原文地址:https://www.cnblogs.com/w13248223001/p/10386230.html
Copyright © 2020-2023  润新知