//逻辑或|和短路或||的区别:
//逻辑或: 一个为真,则为真
//短路或: 一个为真,则为真
//当第一个式子成立时有区别;逻辑或仍然会执行后面的,短路或则不会
证明思路:先满足第一个式子成立,即(y<x);可以根据判断输出的结果c和d有没有进行赋值成false,即可判断短路或有没有执行后面的语句。
public class Test {
public static void main(String[] args){
int y = 11;
int x = 12;
boolean c=true;
System.out.println(y<x|(c=false));//得到的结果是true,因为逻辑或是一真则为真
System.out.println("c---"+c);//输出的是false,因为逻辑或继续执行了后面的语句,c被赋值为false.
boolean d=true;
System.out.println(y<x||(d=false));//输出的是true,因为短路或是一真则为真
System.out.println("d---"+d);//输出的是true,因为短路或没有值后面的d赋值过程,所以这一步没有执行,d还是true
System.out.println("---------------");
}
}
//逻辑与: 一个为假,则为假
//短路与: 一个为假,则为假
//短路与和逻辑与的区别:
//当第一个式子不成立时有区别;逻辑与仍然会执行后面的,短路与则不会
证明思路:先满足第一个式子不成立,即(y>x);可以根据判断输出的结果c和d有没有进行赋值成true,即可判断短路或有没有执行后面的语句
public class Test {
public static void main(String[] args){
int y = 11;
int x = 12;
boolean c=false;
System.out.println(y>x&(c=true));//输出false,因为逻辑与是一假则为假
System.out.println("c---"+c);//输出true,逻辑与会继续执行后面的语句,c被赋值true
boolean d=false;
System.out.println(y>x&&(d=true));//输出false,因为短路与是一假则为假
System.out.println("---"+d);//输出false,短路与没有执行后面的语句,所以d没有被赋值true
}
}
逻辑与和或,及短路与和或的区别证明
最新推荐文章于 2023-04-19 18:30:03 发布