逻辑运算符意思_逻辑运算符两侧运算对象的数据类型

逻辑运算符意思_逻辑运算符两侧运算对象的数据类型

目录

5.逻辑运算符

5.1逻辑运算符概述

 5.2短路逻辑运算符


5.逻辑运算符

(学完之后要求能够使用逻辑运算符完成逻辑运算)

5.1逻辑运算符概述

在数学中,一个数据x,大于3,小于6,我们可以写为这样来表示:3<x<6

在Java中,需要把上面的狮子先进行拆解,在进行合并表达。

拆解为:x>3.x<6

合并为:x>3 && x<6

我们可以这样说,逻辑运算符,是用来连接关系表达式的运算符。

当然逻辑运算符也可以直接连接布尔类型的常量或者变量。

逻辑运算符分类:

逻辑运算符意思_逻辑运算符两侧运算对象的数据类型

 5.2短路逻辑运算符

逻辑运算符意思_逻辑运算符两侧运算对象的数据类型

 注意事项:

逻辑与&:无论左边真假,右边都要执行。

短路与&&:如果左边为真,右边执行;如果左边为假,右边不执行。

逻辑或|:无论左边真假,右边都要执行。

短路或||:如果左边为真,右边执行;如果左边为假,右边不执行。

最常用的逻辑运算符:&&||

代码演示:

/* 逻辑运算符 */ public class OperatorDemo7 { public static void main(String[] args) { //定义变量 int i = 10; int j = 20; int k = 30; //&逻辑与 有false则false演示 System.out.println( (i > j) & (i > k) );//false & false得false System.out.println( (i > j) & (i < k) );//false & true得false System.out.println( (i < j) & (i < k) );//true & true得true System.out.println( (i < j) & (i > k) );//true & false得false System.out.println( (i == j) & (i == k) );//false & false得false System.out.println( (i != j) & (i != k) );//true & true得true System.out.println( (i >= j) & (i >= k) );//false & false得false System.out.println( (i <= j) & (i <= k) );//true & true得true System.out.println("--------------------"); //|逻辑或 有true则true演示 System.out.println( (i > j) | (i > k) );//false | false得false System.out.println( (i > j) | (i < k) );//false | true得true System.out.println( (i < j) | (i < k) );//true | true得true System.out.println( (i < j) | (i > k) );//true | false得true System.out.println( (i == j) | (i == k) );//false | false得false System.out.println( (i != j) | (i != k) );//true | true得true System.out.println( (i >= j) | (i >= k) );//false | false得false System.out.println( (i <= j) | (i <= k) );//true | true得true System.out.println("--------------------"); //^逻辑异或 相同则为false,不同为ture System.out.println( (i > j) ^ (i > k) );//false ^ false得false System.out.println( (i > j) ^ (i < k) );//false ^ true得true System.out.println( (i < j) ^ (i < k) );//true ^ true得false System.out.println( (i < j) ^ (i > k) );//true ^ false得true System.out.println( (i == j) ^ (i == k) );//false ^ false得false System.out.println( (i != j) ^ (i != k) );//true ^ true得false System.out.println( (i >= j) ^ (i >= k) );//false ^ false得false System.out.println( (i <= j) ^ (i <= k) );//true ^ true得false System.out.println("--------------------"); //!逻辑非 !false为true,!!false为false,!!!false为true,以此类推 System.out.println( !(i > j) );//得true System.out.println( !!(i > j) );//得false System.out.println( !!!(i > j) );//得true System.out.println( !!!!(i == j) );//得false System.out.println("--------------------"); //&&短路与 结论与&逻辑与相同 有false则false,否则为true System.out.println( (i > j) && (i > k) );//false & false得false System.out.println( (i > j) && (i < k) );//false & true得false System.out.println( (i < j) && (i < k) );//true & true得true System.out.println( (i < j) && (i > k) );//true & false得false System.out.println( (i == j) && (i == k) );//false & false得false System.out.println( (i != j) && (i != k) );//true & true得true System.out.println( (i >= j) && (i >= k) );//false & false得false System.out.println( (i <= j) && (i <= k) );//true & true得true System.out.println("--------------------"); //||短路或 结论与|逻辑或相同,有true则true,否则为false System.out.println( (i > j) || (i > k) );//false || false得false System.out.println( (i > j) || (i < k) );//false || true得true System.out.println( (i < j) || (i < k) );//true || true得true System.out.println( (i < j) || (i > k) );//true || false得true System.out.println( (i == j) || (i == k) );//false || false得false System.out.println( (i != j) || (i != k) );//true || true得true System.out.println( (i >= j) || (i >= k) );//false || false得false System.out.println( (i <= j) || (i <= k) );//true | |true得true System.out.println("--------------------"); //逻辑与&和短路与&&的区别演示 //System.out.println( (i++ > 100) & (j++ > 100) );//false & false得false System.out.println( (i++ > 100) && (j++ > 100) );//false && false得false 无区别 /* 但是把上面逻辑与的注释掉就得到i == 11;j == 20 为什么呢?因为上面输出语句先运算i++再判断是否大于100, 根据逻辑与的运算,第一条判断出来是false后再继续运算j++在判断是否大于100, 在得到第二条false,则判定为false 但是短路与是先判断第一条i++是否大于100,如果false, 那就直接根据短路与的结论直接不用验证后面的关系表达式直接判断为false 因为逻辑与的结论是有false则全false 所以短路与只要判断出第一个false就不再对后面的关系表达式进行运算直接判定为false 就是为什么叫短路与&&,短路或也同理。 */ System.out.println("i:" + i);//得11 System.out.println("j:" + j);//得20 } } 

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/163803.html

(0)
上一篇 2024年 7月 4日 下午10:51
下一篇 2024年 7月 4日 下午10:56

相关推荐

关注微信