【Java 新手必看】逻辑运算符:从原理到实战,附可运行代码案例
逻辑运算符是 Java 实现 “条件判断、逻辑组合” 的核心工具也是 if/else、while 等流程控制语句的基础。新手常混淆 “短路与 / 或” 和 “非短路” 的区别这篇笔记结合可直接运行的代码案例从概念、用法到避坑指南帮你彻底吃透 Java 逻辑运算符。一、什么是 Java 逻辑运算符逻辑运算符用于对布尔类型true/false的值进行逻辑运算最终结果仍为布尔类型。核心作用是把多个简单条件组合成复杂条件比如 “成绩≥60 且 出勤≥80%” 才算及格。Java 逻辑运算符分为三类与运算非短路与、短路与或运算|非短路或、||短路或非运算!取反异或运算^异或补充知识点二、核心逻辑运算符详解附可运行案例1. 先记核心规则表运算符名称运算规则短路特性短路与两边都为 true结果才为 true有一个 false 则结果 false左边为 false 时右边不执行非短路与同短路与但无论左边结果如何右边都会执行无短路或有一个为 true结果就为 true两边都 false 才为 false左边为 true 时右边不执行非短路或同短路或但无论左边结果如何右边都会执行无!逻辑非true→falsefalse→true-^逻辑异或两边结果不同为 true相同为 false-2. 基础用法可直接运行// 文件名LogicOperatorBasic.java类名与文件名一致 public class LogicOperatorBasic { public static void main(String[] args) { // 初始化测试变量 boolean a true; boolean b false; int num 10; // 1. 短路与 System.out.println(a b (a b)); // falseb为false // 左边为false右边的num不会执行 System.out.println(false (num)5 (false (num)5)); // false System.out.println(短路与后num num); // 10num未执行 // 重置num num 10; // 2. 非短路与 System.out.println(a b (a b)); // false // 左边为false右边的num仍会执行 System.out.println(false (num)5 (false (num)5)); // false System.out.println(非短路与后num num); // 11num执行了 // 重置num num 10; // 3. 短路或 || System.out.println(a || b (a || b)); // truea为true // 左边为true右边的num不会执行 System.out.println(true || (num)5 (true || (num)5)); // true System.out.println(短路或后num num); // 10num未执行 // 重置num num 10; // 4. 非短路或 | System.out.println(a | b (a | b)); // true // 左边为true右边的num仍会执行 System.out.println(true | (num)5 (true | (num)5)); // true System.out.println(非短路或后num num); // 11num执行了 // 5. 逻辑非 ! System.out.println(!a (!a)); // false System.out.println(!b (!b)); // true // 6. 逻辑异或 ^ System.out.println(a ^ b (a ^ b)); // true两边不同 System.out.println(a ^ a (a ^ a)); // false两边相同 } }3. 运行结果plaintexta bfalse false (num)5false 短路与后num10 a bfalse false (num)5false 非短路与后num11 a || btrue true || (num)5true 短路或后num10 a | btrue true | (num)5true 非短路或后num11 !afalse !btrue a ^ btrue a ^ afalse4. 核心结论短路 vs 非短路短路运算符、||优先判断左边若左边能确定最终结果右边代码不执行性能更高日常开发首选非短路运算符、|无论左边结果如何右边代码一定会执行仅在需要强制执行右边逻辑时使用如同时判断条件 修改变量。三、实际开发场景案例逻辑运算符最常用在流程控制中以下是新手高频使用场景1. 多条件判断登录验证// 文件名LoginDemo.java public class LoginDemo { public static void main(String[] args) { // 模拟用户输入 String username admin; String password 123456; boolean isActive true; // 账号是否激活 // 短路与账号正确 密码正确 账号激活才登录成功 if (username.equals(admin) password.equals(123456) isActive) { System.out.println(登录成功); // 输出登录成功 } else { System.out.println(登录失败); } // 短路或满足任一条件则提示 int score 55; if (score 60 || score 100) { System.out.println(成绩异常请检查); // 输出成绩异常请检查 } } }2. 取反判断权限控制// 文件名PermissionDemo.java public class PermissionDemo { public static void main(String[] args) { boolean isAdmin false; // 是否是管理员 // 逻辑非不是管理员则提示无权限 if (!isAdmin) { System.out.println(非管理员无操作权限); // 输出非管理员无操作权限 } } }四、优先级与结合性1. 优先级排序从高到低!非 与 ^异或 |或 短路与 ||短路或2. 示例验证可运行// 文件名PriorityDemo.java public class PriorityDemo { public static void main(String[] args) { boolean x true; boolean y false; boolean z true; // 优先级! || // 步骤1!y → true // 步骤2x true → true // 步骤3true || z → true boolean result x !y || z; System.out.println(x !y || z result); // true // 用括号改变优先级 boolean result2 x (!y || z); System.out.println(x (!y || z) result2); // true本例结果相同仅演示 // 结合性逻辑运算符都是“左结合”从左到右算 boolean result3 (false true) || true; boolean result4 false (true || true); System.out.println((false true) || true result3); // true System.out.println(false (true || true) result4); // false } }五、新手常见错误汇总1. 混淆和、|和||新手常误用非短路运算符导致逻辑错误比如int num 0; // 本意num0时才执行num但用了导致num始终执行 if (num 0 (num) 0) { System.out.println(num0); } System.out.println(num); // 输出1不符合预期修正用短路与左边num0为 false 时右边num不执行if (num 0 (num) 0) { ... } System.out.println(num); // 输出0符合预期2. 条件顺序导致的逻辑错误短路运算符的执行顺序会影响结果比如String str null; // 错误先判断str.equals(Java)str为null会报空指针异常 if (str.equals(Java) str ! null) { ... } // 正确先判断str!null为false时短路避免空指针 if (str ! null str.equals(Java)) { ... }3. 逻辑非的范围错误新手容易漏加括号导致取反范围错误boolean a true; boolean b false; // 错误!a || b → (false) || false → false本意是!(a||b) System.out.println(!a || b); // 正确先算a||b再取反 System.out.println(!(a || b)); // falsea||b为true取反后false4. 用逻辑运算符比较非布尔值逻辑运算符只能操作布尔值以下写法编译报错int a 5; int b 3; // System.out.println(a b); // 错误int不能转boolean总结逻辑运算符仅操作布尔值结果也为布尔值核心分为与/、或||/|、非!三类短路运算符、||性能更高左边能确定结果时右边不执行是日常开发首选新手避坑重点区分短路 / 非短路、注意条件顺序避免空指针、用括号明确优先级。所有案例均可直接复制运行建议新手亲手敲一遍重点体会短路运算符的 “短路特性”—— 这是 Java 面试和开发中的高频考点也是避免逻辑 bug 的关键

相关新闻

SpringBoot+Vue 工作流程管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL

SpringBoot+Vue 工作流程管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL

摘要 随着信息技术的快速发展,工作流程管理系统在企业管理和学术研究中扮演着越来越重要的角色。传统的手工管理方式效率低下,难以满足现代企业对流程自动化、数据可视化和协同办公的需求。因此,开发一套高效、灵活的工作流程管理系统成为企业…

2026/7/3 16:49:31 阅读更多 →
Java SpringBoot+Vue3+MyBatis 电商平台系统源码|前后端分离+MySQL数据库

Java SpringBoot+Vue3+MyBatis 电商平台系统源码|前后端分离+MySQL数据库

摘要 随着互联网技术的快速发展,电子商务平台已成为现代商业活动中不可或缺的一部分。消费者对便捷、高效的在线购物体验需求日益增长,推动了电商平台的多样化和功能完善。传统电商系统在性能、扩展性和用户体验方面存在诸多不足,亟需通过现…

2026/7/3 2:34:02 阅读更多 →
测试OK的Android 8.0开机启动方案汇总

测试OK的Android 8.0开机启动方案汇总

测试OK的Android 8.0开机启动方案汇总 在Android 8.0系统中实现自定义脚本的开机自动执行,是嵌入式开发、设备定制和自动化运维中的常见需求。但很多开发者会发现:脚本明明写对了,手动执行也没问题,一到开机就静默失败——背后往…

2026/7/3 8:53:51 阅读更多 →

最新新闻

C语言实现量子密钥分发(BB84)协议:从原理到代码实战

C语言实现量子密钥分发(BB84)协议:从原理到代码实战

1. 项目概述:当C语言遇见量子加密如果你是一名嵌入式开发者,或者对密码学和底层编程有浓厚兴趣,那么“量子加密”这个词对你来说,可能既充满科幻感又觉得遥不可及。我们常在新闻里看到量子计算机如何“秒杀”传统加密,…

2026/7/4 0:20:36 阅读更多 →
电子邮件端到端加密实战指南:从PGP原理到安全通信部署

电子邮件端到端加密实战指南:从PGP原理到安全通信部署

1. 项目概述:为什么我们需要为电子邮件“上锁”?在数字世界里,电子邮件就像我们日常寄送的明信片。想象一下,你写了一张包含银行账户信息或私人情感的明信片,从投入邮筒到送达朋友手中,会经过分拣中心、邮递…

2026/7/4 0:20:36 阅读更多 →
基于流处理框架的实时算法实现策略的技术7

基于流处理框架的实时算法实现策略的技术7

引言实时数据处理在现代技术场景中的重要性流处理框架(如Flink、Spark Streaming、Kafka Streams)的概述实时算法与传统批处理算法的核心差异流处理框架的核心特性低延迟与高吞吐量的设计原则事件时间(Event Time)与处理时间&…

2026/7/4 0:18:34 阅读更多 →
Selenium自动化测试中Errno 8 Exec format error的完整解决方案

Selenium自动化测试中Errno 8 Exec format error的完整解决方案

1. 项目概述:一个看似简单却暗藏玄机的报错 如果你正在用Selenium搞自动化测试或者数据抓取,特别是从Windows换到Linux环境,或者在不同架构的机器上折腾,那么“Errno 8 Exec format error”这个报错,你大概率会碰上。…

2026/7/4 0:18:34 阅读更多 →
工业级条码扫描系统硬件选型与嵌入式实现

工业级条码扫描系统硬件选型与嵌入式实现

1. 项目概述:条码扫描系统的硬件选型与实现在零售、物流和工业自动化领域,条码扫描技术作为数据采集的核心手段,其可靠性和适应性直接决定了整个系统的运行效率。本项目采用LV30工业级条码扫描器与MKV46F256VLH16微控制器构建的嵌入式解决方案…

2026/7/4 0:16:33 阅读更多 →
B站视频下载神器:3分钟搞定离线收藏,告别网络限制的终极指南

B站视频下载神器:3分钟搞定离线收藏,告别网络限制的终极指南

B站视频下载神器:3分钟搞定离线收藏,告别网络限制的终极指南 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你…

2026/7/4 0:16:33 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻