Java 这辆我的车的评估结果是什么?它是somePart()的返回值吗?
这辆我的车的评估结果是什么?它是somePart()的返回值吗Java 这辆我的车的评估结果是什么?它是somePart()的返回值吗?,java,Java,这辆我的车的评估结果是什么?它是somePart()的返回值吗 我认为它总是会返回真的。事实上,somePart()永远不会被计算。因为它是介于true和somePart()之间的|运算符,所以它总是返回true 它检查两个条件中的任何一个是否为真,如果它发现这样一个条件为真,则将其设置为真。这是对somePart()的调用从未被计算的一个间接原因。它被计算为true,somePart()从未被调用。它将始终返回true。操作符被称为“短路”操作符,因为如果它发现计算左操作数的结果是true,它
我认为它总是会返回真的。事实上,somePart()永远不会被计算。因为它是介于true和
somePart()之间的|运算符
,所以它总是返回true
它检查两个条件中的任何一个是否为真,如果它发现这样一个条件为真,则将其设置为真。这是对somePart()
的调用从未被计算的一个间接原因。它被计算为true,somePart()从未被调用。它将始终返回true
。操作符被称为“短路”操作符,因为如果它发现计算左操作数的结果是true
,它就不需要计算右操作数了。在您的情况下,true
是true
,因此不会调用somePart()
。大声读出来
"myCar equals TRUE -or- somePart()"
我们可以缩短函数求值,因为第一个条件总是返回true。即使somePart()返回false,它也总是返回true。因为somePart()甚至不会被执行。JVM优化逻辑表达式,如果结果已知,则不会运行表达式的其余部分 这是真的。总是。由于逻辑or运算符的行为,如下所示:
Input 1 Input 2 Output
------- ------- ------
0 0 0
0 1 1
1 0 1
1 1 1
somePart
只有在第一个条件为false时才会被计算,因此它永远不会被计算。&&和| |运算符对两个布尔表达式执行条件and和条件OR运算。这些运算符表现出“短路”行为,这意味着只有在需要时才计算第二个操作数。我不是想说得粗鲁,但最好的学习方法是尝试编写一个示例程序,您可以用它来测试,看看结果如何。在Java中,有boolean
而不是bool
。如此编辑。如果您的应用程序依赖于您运行somePart()
,则这可能是一个严重的问题。事实上,它永远不会。真值表中的一列只能是true
Input 1 Input 2 Output
------- ------- ------
0 0 0
0 1 1
1 0 1
1 1 1