Java之&&、||,
分享于 点击 32923 次 点评:86
Java之&&、||,
逻辑运算符:&&和|| 是按照“短路”方式求值的,如果第一个操作数已经能够确定表达式的值,第二个操作数就不会计算了;
&& ,||介绍:
&&(短路与),||(短路或)。
&&符号可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,
||符号可以作逻辑或运算符,表示逻辑或(or),当运算符有一边为true时,整个运算结果为true!
简单来说就是:
&& 只要第一个条件不满足,后面条件就不再判断
|| 只要满足第一个条件,后面的条件就不再判断
示例:
&& 当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
总结:
都为真,则为真。
有假则为假,无需再判断
package com.yu.bai.test;
public class Test {
public static void main(String[] args) {
String s = null;
/**
* &&:当第一个条件为真,但是不能最终确定这个if判断的结果是true还是false,还需要再判断第二个条件,
* 就是短路逻辑与运算符,当且仅当两个操作数都为真,条件才为真
*
* 结论:&& 短路逻辑与运算符的判断,只要有一个条件为false,
* 那么此次判断可以结束,否则需要一直判断完所有的条件。
*/
if((s==null) && (s.length()>0)){//s==null 第一个条件为true,还需要判断第二个条件s.length()>0
System.out.println("(s==null) && (s.length()>0)---判断结果为false");
}
if((s!=null) && (s.length()>0)){//s!=null 第一个条件为false,其结果必定是false,这时候就不需要再判断第二个操作。
System.out.println("(s!=null) && (s.length()>0)---判断结果为false");
}
}
}
|| 逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。
总结:
有真则为真,无需再判断。
package com.yu.bai.test;
public class Test {
public static void main(String[] args) {
String s = null;
/**
* || 短路逻辑运算符 ,如果任何两个操作数任何一个为真,条件为真。
* 当第一个条件为true,则不再需要判断第二个条件了
*/
if ((s == null) || (s.length() == 0)) {
//第一个条件为true,其结果必定是true,这时候就不需要再判断第二个操作,所以第二个操作不会抛空指针异常
System.out.println("true");
}
int num = 1;
if((s != null) || (num == 0)){
System.out.println("不会输出这段话");
}else{
System.out.println("if判断的结果为false,所以输出else语句块的信息");
}
/**
* 第一个条件为false,那么s==null,说明第二个条件中影藏着s==null的条件,
* 也就是说,此时的第二个判断相当于(s == null) && (s.length() == 0)
*/
if ((s != null) || (s.length() == 0)) {
//第一个条件为false,其结果不能确定,这时候就需要再判断第二个操作,所以第二个操作会抛空指针异常
System.out.println("java.lang.NullPointerException");
}
}
}
相关文章
- 暂无相关文章
用户点评