逻辑运算符和短路求值

要了解短路求值就必须先了解什么是逻辑运算符。

逻辑运算符 

在了解运算符之前我们必须先知道再JAVA中逻辑运算符的结果是Boolean类型的值

逻辑与“&&”

表达式1 && 表达式2

 逻辑与就是只有运算符两边的表达式都为真,结果才为真

表达式1 表达式2 结果

逻辑运算符和短路求值_第1张图片

逻辑或“||”

表达式1 || 表达式2

 逻辑与就是只有当两边表达式都为假的时候,结果才为假

表达式1 表达式2 结果

逻辑运算符和短路求值_第2张图片

逻辑非“!” 

!表达式1

与,或,非三个逻辑表达式中只有非是单目运算符

当表达式1为真,结果就为假

当表达式1为假,结果就为真

表达式1 结果

 


短路求值

了解完逻辑运算符之后就来了解一下短路求值

首先你可以先思考一下下面代码的输出结果。

逻辑运算符和短路求值_第3张图片逻辑运算符和短路求值_第4张图片

 

 答案:

两道题的结果都是:

逻辑运算符和短路求值_第5张图片

为什么会这样呢?

  • 对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.
  • 对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式.

如果你想在写代码时无论如何都不出现短路求值 

那么在JAVA中位运算符“& |”当它们两个两边的表达式返回值为Boolean时他们也可以充当逻辑运算符。

逻辑运算符和短路求值_第6张图片

& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值。

你可能感兴趣的:(开发语言,后端,java)