您的位置:首页技术文章
文章详情页

java基础,求解答。

【字号: 日期:2023-10-22 08:43:50浏览:50作者:猪猪

问题描述

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,这个除数不是不能为零的吗?为什么能走通呢?很是费解,希望大神可以给解释下,谢谢。

问题解答

回答1:

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

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

回答2:

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

回答3:

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

标签: java
相关文章: