java中2<1&&10/0==0这个判断为什么不会抛出异常

java中2<1&&10/0==0这个判断为什么不会抛出异常java中2<1&&10/0==0这个判断为什么不会抛出异常,不是算数运算符在这里面优先级最高应该先运算10/0,然后就会出现异常才会啊

第1个回答  2016-08-06
计算2<1 && 10/0==0时,因为2<1是假的,后面的10/0==0没有必要计算了,所以不会出现异常追问

可是算数运算符优先级最高,为什么没有按照优先级的高低先算10/0呢?

第2个回答  2016-08-06
因为2<1 已经是false了,不会再去计算后面的表达式了本回答被提问者采纳
第3个回答  2016-08-06
&&等运算会短路,前一个运算错误不会判断第二个运算追问

可是算数运算符优先级最高,为什么没有按照优先级的高低先算10/0呢?

追答

你可以理解为&&强行给前半部分加上(),而java中&&有短路效应。当换成&就会报错,因为&前后都要判断