也就是说,如果我有一个评估多个条件的语句,比如说'或'这样的语句.
if(isVeryLikely() || isSomewhatLikely() || isHardlyLikely())
{
...
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下isVeryLikely(),在运行时返回true,将isSomewhatLikely()和isHardlyLikely()执行?如果不是方法而是静态布尔值呢?
Chr*_*ung 46
在||与&&运营商短路.
true || willNeverExecute();
false && willNeverExecute();
Run Code Online (Sandbox Code Playgroud)
Ver*_*ern 13
您需要注意的第一件事是Java条件语句只能采用布尔值,与其他语言(如C/C++)不同,其中任何非零值都将计算为true.
话虽如此,有两种类型的运算符,第一种称为shor-circuit类型:
&& and ||
Run Code Online (Sandbox Code Playgroud)
而另一种是非短路类型:
& and |
Run Code Online (Sandbox Code Playgroud)
对于短路类型,一旦找到逻辑输出作为表达式的答案,将转储语句的其余部分.对于非短路类型,他们将继续评估所有条件.
考虑到这一点,你有什么:
if(isVeryLikely() || isSomewhatLikely() || isHardlyLikely())
{
...
}
Run Code Online (Sandbox Code Playgroud)
Java将:
您要问的整个概念是"Java如何评估逻辑表达式".好问题 :)
希望能帮助到你!干杯!