【发布时间】:2020-07-23 10:54:09
【问题描述】:
这对大多数程序员来说可能看起来很简单,但是看到下面的代码打印true,我有点惊讶。
//The actual implementation has proper logic,
//just for simplicity I am using booleans in place of those logics
System.out.println(false && false || true && true || false && false);
因为我的看法是 - 如果第一个布尔值计算为 false 并且下一个操作数是 && 则 jvm 甚至不会尝试计算表达式的其余部分,而只是将整体视为 false
我希望下面的代码可以工作,但上面的代码不行:
System.out.println((false && false) || (true && true) || (false && false));
是否像编译器默认将&&s 分组在||s 之间
【问题讨论】:
标签: java