Java逻辑运算符&&、&、||、|的区别及使用场景详解

在 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 后,后续条件未进行判断便执行了括号中的代码。然而,需要对所有条件进行判断。

所以会报错。

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

24阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

25阅读