java基础,求解答。
世界只因有你
世界只因有你 2017-06-30 09:53:33
[Java讨论组]

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)
三叔

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

&& 运算符检查第一个表达式是否返回 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 ,后面的内容就不再执行了

PHP中文网

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

迷茫

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号