逻辑运算‘|‘,‘||‘、‘&‘、‘&&‘
我们平时在开发中,经常会用到逻辑运算符。但就开发效率而言正确的用好逻辑运算符也很重要
虽然事情很小,但有时稍微不注意也会翻车。
‘|’ 或
特点:两边有一个为true时则为true,两边都为false时才为false
true|true = true
true|false = true
false|true = true
false|false = false
'||' 或
特点:两边有一个为true时则为true,两边都为false时才为false
true|true = true
true|false = true
false|true = true
false|false = false
不同点:'|'当左边满足时,依然会运算右边的,'||'当左边满足时,就不进行右边的运算。效率会高一点。
验证‘|’:
@Test
public void test7() throws ParseException {
String str1 = null;
String str2 = "1";
if(str2.equals(String.valueOf(1)) | str1.equals(String.valueOf(1))){
System.out.println("***正确输出****");
}
}
结果:

验证‘||’;
@Test
public void test7() throws ParseException {
String str1 = null;
String str2 = "1";
if(str2.equals(String.valueOf(1)) || str1.equals(String.valueOf(1))){
System.out.println("***正确输出****");
}
}
输出结果:

'&' 与
特点:当两边都为true时才为true,有一边为false就为false
true|true = true
true|false = false
false|true = false
false|false = false
'&&' 与
特点:当两边都为true时才为true,有一边为false就为false
true|true = true
true|false = false
false|true = false
false|false = false
不同点:'&' 当左边为false时依然进行右边的运算,‘&&’当左边为false就直接短路,不再进行右边的运算
验证'&' 当左边为false时依然会进行右边的运算
@Test
public void test7() {
String str1 = null;
String str2 = "1";
if(str2.equals(String.valueOf(2)) & str1.equals(String.valueOf(1))){
System.out.println("***正确输出****");
}
}
结果:

验证'&&':当左边为false时就不在进行右边的运算
@Test
public void test7(){
String str1 = null;
String str2 = "1";
if(str2.equals(String.valueOf(2)) && str1.equals(String.valueOf(1))){
System.out.println("***正确输出****");
}else {
System.out.println("***不在运算****");
}
}
结果:

总结:我们要先将容易判断出结果的判断放在左边,这样可以提高开发效率。

浙公网安备 33010602011771号