Java逻辑运算符&&、&、||、|的区别及使用场景详解
在 java 的逻辑运算符范畴内,存在以下四类:一类是 &&,它被称为短路与;一类是 &;还有一类是 |;另外一类是 ||,其被称作短路或。

&&表示与,&也表示与。&&的区别在于,只要第一个条件不满足,后面的条件就不再进行判断。而&则需要对所有的条件都进行判断。
看下面的程序:
主函数为公共静态的,参数是一个 String 类型的数组。
需要明确具体的横线下的句子内容呀,没有看到具体的句子呢,无法进行改写呢。请提供需要改写的句子吧。
if((23!=23)&&(100/0==0)){
System.out 说明了“运算没有问题”这一状况。
}else{
System.out.println("没有报错");
}
}
输出的是“没有报错”。而将&&改为&就会如下错误:
在主线程中出现异常。异常类型为 java.lang.ArithmeticException,原因是除以零。
原因是:在某个时刻判断第一个条件为 false 了,所以后面的 100 / 0 == 0 这个条件就没有被进行判断。
要对所有的条件进行判断,因此会对后面的条件进行判断,进而会报错。
||表示“或”,其特点是只要满足第一个条件,后面的条件就不再进行判断;而|表示“或”时,需要对所有的条件进行判断。
看下面的程序:
公共静态 void 主函数(字符串数组 args){ }
// TODO Auto-generated method stub
if((23==23)||(100/0==0)){
System.out.println("运算没有问题。");
}else{
System.out.println("没有报错");
}
}
此时输出“运算没有问题”。若将||改为|则会报错。
原因在于:判断第一个条件为 true 后,后续条件未进行判断便执行了括号中的代码。然而,需要对所有条件进行判断。
所以会报错。