java布尔表达式用&&、||、!组合条件,需注意含义、优先级(! > && > ||)和短路特性:&&要求全true且左false时右不执行;||只要一true且左true时右不执行;!需括号避免误用。

Java 中布尔表达式通过逻辑运算符(&&、||、!)组合多个条件,实现更精确的判断。关键在于理解每个运算符的含义、优先级和短路特性,避免意外结果。
用 &&(逻辑与)要求所有条件都为 true
只有当左右两边的布尔表达式都为 true 时,整个表达式才为 true。它具有短路特性:左边为 false 时,右边不会执行。
- 适合检查多个前提同时成立,比如用户登录验证:username != null && !username.trim().isEmpty() && password.length() >= 6
- 利用短路可避免空指针异常:先判空再调用方法,如 list != null && !list.isEmpty()
用 ||(逻辑或)只要一个为 true 就成立
左右任意一边为 true,整个表达式即为 true。同样短路:左边为 true 时,右边不执行。
- 常用于多选一场景,例如权限校验:role.equals("ADMIN") || role.equals("EDITOR")
- 配合默认值处理:input == null || input.trim().isEmpty() 判断输入是否无效
用 !(逻辑非)反转布尔值,注意括号使用
! 优先级高,只作用于紧邻的表达式。复杂条件必须加括号,否则易出错。
- 正确写法:!(age 65) 表示“既不未成年也不超龄”
- 错误写法:!age 65 实际等价于 (!age) 65(语法错误,因为 ! 不能用于 int)
- 常见用途:否定整个条件,如 if (!isValidEmail(email)) { ... }
组合使用时注意优先级和括号
逻辑运算符优先级从高到低是:! > && > ||。混合使用时,不加括号容易误解执行顺序。
- 表达式 a || b && c 等价于 a || (b && c),不是 (a || b) && c
- 为提升可读性和准确性,建议显式加括号,尤其是涉及多个不同运算符时
- 复杂业务逻辑可提取为带语义的方法名,如 isEligibleForDiscount(),内部封装布尔表达式
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











