当前位置: 首页 > web >正文

在 Java 中!(逻辑非)和 ||(逻辑或)的优先级关系

🚀 优先级规则:

  1. !(逻辑非)的优先级高于 ||(逻辑或)​
    这意味着在表达式中:

    • ! 会先计算
    • || 后计算
  2. ​运算符优先级从高到低排序​​:
    ! > 算术运算符 > 比较运算符 > && > ||


⚙️ 示例解析:

boolean a = false;
boolean b = true;// 情况 1: !a || b 
// 等价于:(!a) || b → true || true → true
System.out.println(!a || b);  // 输出 true// 情况 2: !(a || b)
// 等价于:先算 a || b (false || true = true),再取非 → !true → false
System.out.println(!(a || b)); // 输出 false

🛡️ 强制改变优先级的方法:

使用括号 () 明确指定计算顺序:

// 需要先计算 || 再取非
boolean result = !(condition1 || condition2);// 需要先计算 ! 再执行 ||
boolean result = !condition1 || condition2;

✅ 完整运算符优先级表(相关部分):

优先级运算符类别结合性
最高! ~ ++ --一元运算符右向左
* / %算术运算符左向右
+ -算术运算符左向右
< <= > >= instanceof比较运算符左向右
== !=相等运算符左向右
&&逻辑与左向右
最低<mark>``</mark>
         | **逻辑或**   | 左向右   |

注:&& 优先级高于 ||(例如 a && b || c 等价于 (a && b) || c


🧠 记忆口诀:

​"叹号先行,或最后行"​
! 最先计算,|| 最后计算)


💡 实践建议:

在复杂逻辑表达式中,​​始终使用括号 () 明确运算顺序​​,即使你熟悉优先级规则。这样做能:

  1. 避免歧义
  2. 提高代码可读性
  3. 防止优先级记忆错误导致的 bug
// 清晰写法(优于依赖优先级记忆)
if ((!isValid) || (count > MAX_VALUE)) {// 执行逻辑
}
http://www.xdnf.cn/news/12809.html

相关文章:

  • 生成模型从自回归到变分自动编码器
  • 【PhysUnits】15.18 Unit基础结构 (unit.rs)
  • 无需登录即可使用的Web应用网站
  • CMS、G1、ZGC、Shenandoah 的全面对比
  • 淘晶驰的串口显示屏T0 T1 K0 X2 X3 X5之间有何区别 各自的优势是啥 划分的依据是啥
  • 获取环境变量的两种方式:getenv()和environ
  • Nginx Stream 层精准定位ngx_stream_geoip_module
  • 指针的定义与使用
  • Mybatis-Plus的LambdaWrapper
  • 嵌入式面试高频(5)!!!C++语言(嵌入式八股文,嵌入式面经)
  • 将数据库表导出为C#实体对象
  • EMC测试
  • 6月7日day47打卡
  • [ACTF2020 新生赛]Include 1(php://filter伪协议)
  • 嵌入:AI 的翻译器
  • golang常用库之-go-i18n库(国际化)
  • 26、跳表
  • SEO长尾词优化实战策略
  • 【大模型原理与技术-毛玉仁】第五章 模型编辑
  • leetcode刷题日记——二叉搜索树中第 K 小的元素
  • MIT 6.S081 Lab 11 networking
  • RD-Agent-Quant:一个以数据为中心的因素与模型联合优化的多智能体框架
  • CANoe trace里面显示的Time 具体是什么意思
  • Python抽象基类实战:构建广告轮播框架ADAM的核心逻辑
  • Python绘制三十六计
  • OGG 23ai for DAA 部署与补丁升级
  • 雪花ID问题诊断与解决方案
  • C++调试(肆):WinDBG分析Dump文件汇总
  • stm32内存踩踏一例
  • 高斯消元法及其扩展