/*
逻辑运算符:
& 逻辑与 两边都true,结果才true
| 逻辑或 两边只需一个true,结果就是true
! 逻辑非 取反,!false就是true,!true就是false,这是个单目运算符
^ 逻辑异或 两边的算子只要不一样,就是true
&& 短路与
|| 短路或
1、逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算的最终结果也是一个布尔类型。
2、短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象。
3、短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象。
4、什么情况下发生短路现象呢?
5、什么时候选择使用逻辑与运算符?什么时候选择使用短路与运算符?
*/
public class OperatorTest02{
public static void main(String[] args){
//运算符优先级不确定,加小括号
System.out.println(5 > 3 & 5 > 2);//true
System.out.println(5 > 3 & 5 > 6);//false
System.out.println(5 > 3 | 5 > 2);//true
System.out.println(true & true);//true
System.out.println(true & false);//false
System.out.println(false & false);//false
System.out.println(true | true);//true
System.out.println(true | false);//true
System.out.println(false | false);//false
System.out.println(!true);//false
System.out.println(!false);//true
System.out.println(true ^ true);//false
System.out.println(true ^ false);//true
System.out.println(false ^ false);//false
/*
//逻辑与和短路与
int x = 10;
int y = 8;
//逻辑与
System.out.println(x < y & ++x < y);
System.out.println(x);//11
*/
//逻辑与和短路与
int x = 10;
int y = 8;
//短路与
//x < y 结果是false,整个表达式结果已经确定是false,
//所以后面的表达式没有再执行,这种现象被称为短路现象
//短路与才会有短路现象,逻辑与不会存在短路现象
System.out.println(x < y && ++x < y);
System.out.println(x);//10
/*
从某种角度看,短路与更加的智能,由于后面的表达式可能不执行,所以
执行的效率更高。这种方式在实际开发中使用较多,短路与比逻辑与在更加
常用。
但是在某些必须使运算符两边的算子都执行的项目中,必须使用逻辑与。
*/
/*
什么情况下会发生短路或?
* 第一个表达式执行的结果是true,会发生短路或。
什么情况下会发生短路与?
* 第一个表达式执行的结果是false,会发生短路与。
*/
}
}
Java 运算符 Part02 逻辑运算符
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Java中的赋值运算符 赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的...
- 1. 赋值运算符 "=" Swift赋值语句不可作为条件判断语句 2.基础运算符 "+ - * / %" 3.单目...
- 1.0 为什么要进行Java常识性基础补充? 之前学习Java语言,学得很多很杂,而且是很多不同的方面插入讲解的,...
- 一元运算符: 一元运算符,只需要一个操作数 + 正号 - 正号不会对数字产生任何影响 - 负号 - 负号可以对数字...
- 一元运算符:只需一个操作数 +正号:不会对数字产生影响 -负号:对数字进行符号取反 对非Number类型值,会先转...