java - && 和 || 的优先级java中的运算符

标签 java operator-keyword

    Postfix operators [] . (parameters) expression++ expression--
Unary prefix operators ++expression --expression +expression -expression ~ !
Unary prefix creation and cast new (type)
Multiplicative * / %
Additive + -
Shift << >> >>>
Relational < <= > >= instanceof
Equality == !=
Bitwise/logical AND &
Bitwise/logical XOR ^
Bitwise/logical OR |
Conditional AND &&    //here
Conditional OR ||     //here   
Conditional ?:
Assignment = += -= *= /= %= <<= >>= >>>= &= ^= |=

这是 kalid A Mughal & Rasmussen 书中发表的运算符优先级

根据本书,&& 的优先级高于 ||,但以下代码

  if(true&&false||true)
{
    System.out.println("yes");
}

此代码打印“yes”。表示首先执行 "||"

这本书有错吗?或者我的解释错误。

最佳答案

我猜你的解释是错误的。由于 && 具有更高的优先级,因此求值顺序为

(true && false) || true 

这是

false || true -> true

关于java - && 和 || 的优先级java中的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12010362/

相关文章:

java - 如何使用 JUnit Test 注释断言我的异常消息?

java - JDK 版本在命令提示符中显示 1.8.0_92,但无法在 NetBeans 或 Eclipse 中导入

java - 使用 Runtime.exec() 运行 perl 脚本时 BufferedReader.read() 挂起

java - 将字符串作为变量与字符连接与与其他字符串连接有什么区别?

oracle - Airflow Oracle 运算符(operator)

php 文件大小返回统计失败错误

c# - 转换 Dictionary<string,string> 时出现显式转换运算符错误

java - 记录可能更改的 API

c++ - isSet() 或 operator void*() 或 explicit operator bool() 或其他?

java - logback(1.3.0) & slf4j(2.0.0-alpha2) 版本组合不起作用