本帖最后由 XiangZi_ 于 2020-4-8 17:13 编辑


今日事件



今日知识

  • 关系运算符
>         大于
>=      大于等于
<         小于
<=      小于等于
==      等于
!=       不等于

  • 注意!
=          是赋值运算符
==        是关系运算符
关系运算符的运算结果一定是布尔类型:true/false

  • 关系运算符的运算原理
  1. int a = 10;
  2. int b = 10;
  3. a > b 比较的时候,比较的是a中保存的10这个值和b中保存的10这个值之间的大小比较。
  4. a == b 也是如此
复制代码

  1. int a = 10;
  2. int b = 10;

  3. System.out.println(a > b); //false
  4. System.out.println(a >= b); //true
  5. System.out.println(a < b); //false
  6. System.out.println(a <= b); //true
  7. System.out.println(a == b); //true
  8. System.out.println(a != b); //false
复制代码
  • 逻辑运算符
&        逻辑与 (两边的算子都是true,结果才是true)
|         逻辑或 (两边的算子,只要有一个是true,结果就是true)
!         逻辑非 (取反,!false 就是真,!true 就是false,这是一个单目运算符)
^       逻辑异或 (两边的算子只要不一样,结果就是true)

&&      短路与 ()
||        短路或 ()

  • 注意
1、 逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符的最终的运算结果也是一个布尔类型
2、短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象。
3、短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象。
4、什么情况下发生短路现象呢?
5、什么时候选择使用逻辑与运算符?什么时候选择使用短路与运算符?


  1. System.out.println( 5 > 3 & 5 > 2); //true
  2. System.out.println( 5 > 3 & 5 > 6); //false
  3. System.out.println( 5 > 3 | 5 > 6); //true

  4. System.out.println(true & true); //true
  5. System.out.println(true & false); //false
  6. System.out.println(false & true); //false
  7. System.out.println(false & false); //true

  8. System.out.println(true | false); //true
  9. System.out.println(false | false); //false

  10. System.out.println(!true); //false
  11. System.out.println(!false); //true

  12. System.out.println(true ^ false); //true
  13. System.out.println(false ^ false); //false
  14. System.out.println(true ^ true); //false
复制代码
  1. //逻辑与和短路与
  2. int x = 10;
  3. int y = 8;
  4. //逻辑与
  5. System.out.println( x < y & ++x < y);
  6. System.out.println(x); //11
复制代码
  1. //逻辑与和短路与
  2. int x = 10;
  3. int y = 8;
  4. //短路与// x < y 结果是false,整个表达式结果已经确定是false
  5. //所以后面的表达式没有实行,这种现象被称为短路现象。
  6. //短路与才会有短路现象,逻辑与是不会存在短路现象的
  7. System.out.println( x < y && ++x < y);
  8. System.out.println(x); //10
复制代码
  • 小总结:
从某个角度来看,短路与更智能。由于后面的表达式可能不执行,
所以执行效率较高。这种方式在实际的开发中使用较多,短路与比
逻辑与使用的多。短路与更常用。

但是,在某些特殊的**逻辑当中,要求运算符两边的算子必须全部执行,
此时必须使用逻辑与,不能使用短路与,使用短路与可能导致右边的表达式不执行。

什么情况下发生短路或?
    * 第一个表达式执行结果是true,会发生短路或。

什么情况下发生短路与?
    * 第一个表达式执行结果是false,会发生短路与。


笔记&源码展示



下载地址

请勿将以前,以后,所有的日记整合后用于商业用途

OperatorTest02.txt (1.02 KB, 下载次数: 0)

OperatorTest03.txt (3.22 KB, 下载次数: 0)

提示:将文件后缀改为.java就是源码
因为泥潭不让上传.java后缀的文件

如果您喜欢,还请您素质三连~
感谢您的支持


捏脸小分队

没错!一个没有任何用的板块开张了!
捏脸小分队正式启动
想跟着祥子一起去捏小脸蛋的就来加入吧!



索引贴

在这里可以查看到我的所有日记~
点击进入 > 索引贴 < 点击进入
感谢各位的支持~
ing~




[groupid=1701]Complex Studio[/groupid]