逻辑非运算符 ! 用于反转布尔表达式真假值,仅作用于 boolean 类型,不改变原变量;不可用于数字或对象,常简化条件判断并需注意运算符优先级。

Java 中的逻辑非运算符 ! 专门用于反转布尔表达式的真假值:原本为 true 的变成 false,原本为 false 的变成 true。它不改变变量本身,只影响当前表达式求值的结果。
! 只作用于布尔类型,不能直接对数字或对象取反
Java 是强类型语言,! 后面必须跟一个能明确求出 boolean 值的表达式。例如:
-
boolean flag = true; boolean result = !flag;→result是false -
if (!(score >= 60)) { ... }→ 相当于 “如果分数不满足及格条件” -
!5或!"hello"是编译错误,Java 不允许对非布尔值直接使用 !
常用于简化条件判断逻辑
用 ! 可以把“否定某条件”的写法变得更直观,避免嵌套或冗余判断:
- 代替
if (condition == false),直接写if (!condition) - 把
if (user != null && user.isActive() == false)简化为if (user != null && !user.isActive()) - 配合括号控制优先级:
!(a > 0 && b 表示“并非(a 为正且 b 小于 10)”,等价于 <code>a = 10
注意短路特性不适用于 !
! 是一元前缀运算符,不涉及左右操作数的执行顺序,因此不存在“短路”行为。它只对紧邻的布尔表达式求值后再取反:
立即学习“Java免费学习笔记(深入)”;
-
!methodCall()会先执行methodCall()(必须返回boolean),再对其结果取反 - 它不会跳过右侧表达式,因为它根本没有“右侧”;不像
&&或||那样有多个子表达式需要按序评估
理解 ! 的本质就是“翻转真假”,用对了能让条件更清晰、代码更简洁。


















