java - 如何读取下面的 "if"语句以及JAVA中确定优先级的规则是什么?

标签 java if-statement

我刚刚意识到,我在理解编程语言中最基本的原则之一方面遇到了问题,那就是如何弄清楚给定一些 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/

相关文章:

java - Chronon 未出现在 IntelliJ IDEA 13.1 中

if-statement - 序言 - 自定义 'if-then-else'

c - 检查共享内存中的值的 if 语句有什么问题?

java - 类似于 Golang 中 Spring Data JPA 的框架

java - 我得到 ArrayIndexOutofBoundsException - 反转数组

java - HSQLDB 文件模式不起作用

mysql - 对尚未使用的项目求和

python - Jinja2 中关于 for 语句的 If 语句

Python:检查元素是否不在两个列表中?

java - 在服务层上使用接口(interface)