明人不说暗话,直接上代码。
一、&& 和& 的区别
1.1 程序代码
public class Test1 {
/*
短路与:当第一个条件足以判断出条件的真假 则不会执行后者的操作
否则则执行
逻辑与:&两边的表达式都要执行,同为真则为真 否则为假
*/
public static void demo1(){
int n1 = 0,n2 = 0,n3 = 0,n4 = 0;
//短路与
if((n1=1) ==2 && (n2=3) ==2){
System.out.println("【if】短路与:n1="+n1+" "+"n2="+n2);
}else{
System.out.println("【else】短路与:n1="+n1+" "+"n2="+n2);
}
//逻辑与
if((n3=1) ==2 & (n4=3)==2){
System.out.println("【if】逻辑与:n3="+n3+" "+"n4="+n4);
}else{
System.out.println("【else】逻辑与:n3="+n3+" "+"n4="+n4);
}
}
public static void main(String[] args) {
demo1();
}
}
1.1 运行结果分析图
1.2 运行结果分析
短路与的条件能直接判断出程序的真假,故 &&(n2=3)==2就不执行了,而逻辑与两者都要执行,才能判断出真假。
二、|| 和 | 的区别
2.1 程序代码
public class Test1 {
/*
短路或:当一个条件足以判断出条件的真假,则不会执行后者的操作的
否则:执行
逻辑或:|| 两边的表达式都要执行 为真则为真,否则为家
*/
public static void demo2(){
int n1 = 0,n2 = 0,n3 = 0,n4 = 0;
//短路或
if((n1=1) ==1 || (n2=2) ==3){
System.out.println("【if】短路或:n1="+n1+" "+"n2="+n2);
}else{
System.out.println("【else】短路或:n1="+n1+" "+"n2="+n2);
}
//逻辑或
if((n3=1) ==1 | (n4=2)==3){
System.out.println("【if】逻辑或:n3="+n3+" "+"n4="+n4);
}else{
System.out.println("【else】逻辑或:n3="+n3+" "+"n4="+n4);
}
}
public static void main(String[] args) {
demo2();
}
}
2.2 运行结果图
2.3 运行结果分析
当短路或能判处条件则后者的判断就不执行了 即|| (n2=2)==3,否则要执行。而逻辑或 | 则要两者都要执行才行。