博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。@TOC
一、前言
上一篇重点介绍了算术运算符,自增自减和关系运算符等内容,这篇继续深入学习java的操作符知识,主要关于逻辑运算符和短路相关内容。
二、逻辑运算符
逻辑运算符能根据参数的逻辑关系,生成一个布尔值,true或者false。
格式 | 含义 | ||
---|---|---|---|
&& | AND,同时满足即为真 | ||
\ | \ | OR ,一个满足条件即为真 | |
! | NOT ,针对一个变量,true会变成false, false会变成true; |
举个例子。
System.out.println((1 > 2) && (2 < 3));
System.out.println((1 > 2) || (2 < 3));
System.out.println(!(1 > 2));
结果如下,可以结合表格确认一下是否正确,去理解一下。
false
true
true
三、短路
当使用逻辑运算符时,我们会遇到一种短路现象,即一旦能够明确无误的确定整个表达式的值,就不在比较剩下部分了。
举个例子,我们来分析一下,我们建立了三个方法,每一个方法都返回true或者false。我们调用test1(0) && test2(2) && test3(2)时,判断一下是否每个test方法都会被执行。
public class Test8 {
public static void main(String[] args) {
if(test1(0) && test2(2) && test3(2))
System.out.println("expression is true");
else
System.out.println("expression is false");
}
static boolean test1(int val) {
System.out.println("test1(" + val + ")");
System.out.println("result1: " + (val < 1));
return val < 1;
}
static boolean test2(int val) {
System.out.println("test2(" + val + ")");
System.out.println("result2: " + (val < 2));
return val < 2;
}
static boolean test3(int val) {
System.out.println("test3(" + val + ")");
System.out.println("result2: " + (val < 3));
return val < 3;
}
}
结果如下,可以看到当执行test1方法,和test2方法后,我们的结果就可以确立了,所以出现了短路现象,最终我们结果中没有打印test3里面的方法,所以test3方法没有执行。
test1(0)
result1: true
test2(2)
result2: false
expression is false
---
四、总结
以上就是就是关于java基础操作运算符中短路和逻辑运算符的相关知识,可以参考一下,觉得不错的话,欢迎点赞、收藏、在看,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。