boolean逻辑运算仅在true/false间进行,不参与数值计算;核心为not(!)、and(&&)、or(||):!取反,&&全真才真且短路,||有真即真且短路;优先级为! > && > ||,同级左结合。

boolean 类型的逻辑运算只在 true 和 false 两个值之间进行,不参与数值计算,也不允许隐式转换为整数(如 Java 中不能用 1/0 代替 true/false)。核心规则围绕三个基本运算符展开:NOT(非)、AND(与)、OR(或)。
逻辑非(!):单目取反
对一个布尔值做否定操作,结果完全相反:
- !true → false
- !false → true
在多数语言中(如 Java、C#、JavaScript),! 运算符优先级最高,且总是返回布尔值。注意:JavaScript 中 !undefined、!null、!0、!"" 都返回 true,但这是 ToBoolean 转换后的结果,不是原生 boolean 运算——纯 boolean 变量参与 ! 运算时,输入必为 true 或 false,输出也严格是布尔值。
逻辑与(&&):双目“全真才真”
只有左右两个操作数都为 true,结果才是 true;其余情况均为 false:
- true && true → true
- true && false → false
- false && true → false
- false && false → false
实际编程中常使用短路特性:当左侧为 false 时,右侧表达式不再执行(如 flag && doSomething() 中,flag 为 false 就跳过调用)。Java、JavaScript、C# 等均支持此行为。
逻辑或(||):双目“有真即真”
只要有一个操作数为 true,结果就是 true;仅当两者都为 false 时,结果才为 false:
- true || true → true
- true || false → true
- false || true → true
- false || false → false
同样具备短路性:左侧为 true 时,右侧不计算。常用于提供默认值,例如 name || "anonymous"(JavaScript)或 str != null && !str.isEmpty() || "default"(Java 判断前需防空)。
运算优先级与结合性
标准顺序为:! > && > ||,同级运算从左到右:
-
!a && b || c等价于((!a) && b) || c -
a || b && c等价于a || (b && c),不是(a || b) && c
复杂表达式建议加括号明确意图,避免依赖隐式优先级。尤其在混合比较运算(如 ==、)和逻辑运算时,比较运算符优先级通常高于 <code>&& 和 ||,但低于 !。











