课时18:Java运算符(逻辑运算符)

简介: 课时18介绍了Java中的逻辑运算符(与、或、非)。通过范例详细讲解了非操作的使用,展示了如何正确应用逻辑非(!)。接着分别探讨了与操作(& 和 &&)及或操作(| 和 ||),强调了短路运算符(&& 和 ||)在性能和安全性上的优势。课程通过具体代码示例演示了不同逻辑运算符的效果及其应用场景。

课时18:Java运算符(逻辑运算符)

摘要:

1. 范例:观察非操作

2. 与操作

3. 或操作

 

关系运算符中最重要的是逻辑运算。

逻辑运算主要就是三类:与、或、非(!)。

 

01.范例:观察非操作

 

输入System.out.println(10 > 20)

image.png

编译执行结果如下。

image.png

在10前加一个!,输入System.out.println(!10 > 20),编译执行结果如下报错。

image.png

修改System.out.println(!(10 > 20)),编译执行结果。

image.png

在逻辑运算之中最为麻烦的部分就是与和或两种操作,因为其各有两种写法:

与操作:&、&&;

或操作:|、||。

 

02.与操作

 

1、与操作:在进行多个条件判的时候,只有所有的条件都满足了才可以进入;

输入System.out.println(10 / 0),编译执行结果报错算术异常。

image.png

10/0是无穷大,内存被占满,会死机。可以在单片机等尝试10/0.

输入

if (1 > 2 & 10 /0 == 0){
  System.out.println(“条件满足!”);
}

image.png

编译执行结果报错。

image.png

意味着现在两个条件都判断了,但是当使用&时明确的表示多个条件都需要判断,可是如果前面已经有条件返回了false。后面即便有几十万个true,最终结果也是false,所以理论上后续的判断不应该再执行了,那么就可以使用&&(短路与)。

输入

if (1 > 2 && 10 /0 == 0){
  System.out.println(“条件满足!”);
}

image.png

编译执行结果。

image.png

第一个条件不满足,后续就不判断,所以没有报错。所以短路与比单与性能要好。

 

03.或操作

 

2.或操作:或操作的特点若干个判断条件只要有一个是true,那么最终的结果就是true,不管后面有多少个false。

输入

if (1 != 2|10 /0 == 0){
  System.out.println(“条件满足!”);
}

image.png

编译执行结果报错。

image.png

 

再使用短路或,输入

if (1 != 2 || 10 /0 == 0){
  System.out.println(“条件满足!”);
}

编译执行结果正常。

image.png

从此以后所编写的逻辑运算之中,都使用&&和||进行操作。

相关文章
|
26天前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
37 12
|
1月前
|
SQL IDE 算法
《从头开始学java,一天一个知识点》之:运算符与表达式:算术、比较和逻辑运算
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问"`a==b`和`equals()`的区别",大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 这个系列为你打造Java「速效救心丸」,每天1分钟,地铁通勤、午休间隙即可完成学习。直击高频考点和实际开发中的「坑位」,拒绝冗长概念,每篇都有可运行的代码示例。明日预告:《控制流程:if-else条件语句实战》。
41 6
|
1月前
|
Java
课时17:Java运算符(关系运算符)
范例:进行关系判断。如果要进行关系运算的操作可使用:>、<、>=、<=、!=(不等于)、==。所有的关系运算符判断完成的数据返回结果都是布尔类型(boolean)。只要使用关系运算符进行逻辑判断,最终的结果就是布尔型,只有true和false两种结果,而且能和if语句结合使用。
|
1月前
|
存储 Java 编译器
课时11:综合实战:简单Java类
本次分享的主题是综合实战:简单 Java 类。主要分为两个部分: 1.简单 Java 类的含义 2.简单 Java 类的开发
|
1月前
|
Java 程序员 数据处理
课时19:Java运算符(位运算符)
课时19介绍Java中的位运算符,涵盖进制转换、位与、位或及移位操作。重点讲解了二进制与其他进制的转换方法,通过具体范例演示了位与和位或运算的过程,并展示了八进制和十六进制的处理方式。此外,还解释了逻辑运算符(&&、||)与位运算符(&、|)的区别及其应用场景,特别是位运算在加密中的应用。
|
1月前
|
Oracle Java 关系型数据库
课时37:综合实战:数据表与简单Java类映射转换
今天我分享的是数据表与简单 Java 类映射转换,主要分为以下四部分。 1. 映射关系基础 2. 映射步骤方法 3. 项目对象配置 4. 数据获取与调试
|
1月前
|
搜索推荐 Java Android开发
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
【Java零基础入门】:逻辑运算符、关系运算符与位运算符
【Java零基础入门】:逻辑运算符、关系运算符与位运算符
151 0
|
2月前
|
存储 监控 Java
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
203 60
【Java并发】【线程池】带你从0-1入门线程池
|
16天前
|
Java 中间件 调度
【源码】【Java并发】从InheritableThreadLocal和TTL源码的角度来看父子线程传递
本文涉及InheritableThreadLocal和TTL,从源码的角度,分别分析它们是怎么实现父子线程传递的。建议先了解ThreadLocal。
53 4
【源码】【Java并发】从InheritableThreadLocal和TTL源码的角度来看父子线程传递