为了账号安全,请及时绑定邮箱和手机立即绑定

java基础,求解答。

java基础,求解答。

郎朗坤 2019-03-01 10:52:44
public class Demo { public static void main(String args[]) { boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ; System.out.println(flag ? "mldn" : "yootk") ; } } 代码如上,我任务考察的是 && 符号 与 & 符号的区别,但是在最后一个 1 / 0 == 0 这个竟然能走通,而且打印出来了yootk,这个除数不是不能为零的吗?为什么能走通呢?很是费解,希望大神可以给解释下,谢谢。
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

&& 和 || 具有短路效应:
短路效应的根本原因是提高性能

&& 运算符检查第一个表达式是否返回 false,如果是 false , 则结果必为 false,不再检查其他内容
|| 运算符检查第一个表达式是否返回 true,如果是 true , 则结果必为 true,不再检查其他内容

 public static void main(String args[]) { 
     boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ; 
     System.out.println(flag ? "mldn" : "yootk") ; 
 } 

10%2 == 1 为 false ,后面的内容就不再执行了

查看完整回答
反对 回复 2019-03-01
?
www说

TA贡献1775条经验 获得超8个赞

10%2 == 1为 false,整个表达式最终结果就是false,后面的不执行了,短路了。

查看完整回答
反对 回复 2019-03-01
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

&&||会短路,但&|不会。如果你把&&改成&就一定会有异常了。

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 704 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号