java - 带括号的逻辑运算的优先顺序(Java)
问题描述
只是想知道括号是否比java中布尔表达式中的逻辑运算符具有更高的优先级。
例如: (x > 0 || x < 10) && y < 0 是否与 (x > 0 || (x < 10 && y < 0)) 相同?
(编辑格式)
解决方案
逻辑条件中括号的存在不会改变条件的优先级,因为布尔运算总是从左到右执行。
方括号可用于“分组”在较大表达式中使用的子条件,但这些子条件的存在不会赋予其执行任何优先级。请参见以下示例:
class Scratch {
public static void main(String[] args) {
if (f() || (t() && f())){
System.out.println("finish");
}
}
public static boolean f() {
System.out.println("false");
return false;
}
public static boolean t() {
System.out.println("true");
return true;
}
}
这将输出:
false
true
false
因为这对应于从左到右的执行顺序。请注意,如果 OR 函数的第一个条目为真(t()
在我的示例代码中使用),则甚至不会评估后一个条件,因为 OR 条件已经满足。
推荐阅读
- excel - 获取用户窗体上复选框的状态
- android - Android Studio onStop() 中的一个数组
- sql - 通配符搜索的工作与预期相反,我是否错误地编写了查询?
- node.js - 机器学习/神经网络 - 预测运动需要帮助
- google-cloud-platform - 将 CSV 文件从 Spring 批处理写入 GCP 存储
- ruby-on-rails - 将 Ruby Gem 连接到 Rails 数据库
- angular - 具有相同值的对象在集合内
- c# - C#/Dapper - 将 DataTable 作为输入参数传递给存储过程
- vue.js - 具有大量对象的 Vue 性能
- javascript - async await 在嵌套时如何工作?