我刚刚意识到,我在理解编程语言中最基本的原则之一方面遇到了问题,那就是如何弄清楚给定一些 boolean 值和运算符(如 &、&&、|、)的“if”语句将如何执行。 ||不用将它们括在括号中。
我想知道是否有人可以告诉我如何弄清楚 JVM 如何看待下面的“if”语句。
if( true || false & true && false | false ) ;
我对结果 boolean 值不感兴趣,而是对上面的“if”语句放在括号中时的样子感兴趣。
最佳答案
Java operator precedence rules说明如下:
& precedes |
| precedes &&
&& precedes ||
因此,您的 if 语句的评估如下:
1. if (true || false && false) // false & true = false
2. if (true || false) // false | false = false
3. if (true) // true || false = true
您还应该知道,Java 将在第一步之后停止评估您的条件表达式,因为存在 true
OR 。一个 true
足以使整个表达式 true
因为它后面跟着(逻辑)OR。
关于java - 如何读取下面的 "if"语句以及JAVA中确定优先级的规则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22634636/