我们来看一个对象的简单例子Cat.我想确定"not null" cat是橙色还是灰色.
if(cat != null && cat.getColor() == "orange" || cat.getColor() == "grey") {
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
我相信AND先来,然后是OR.我有点模糊,所以这是我的问题:
有人可以引导我完成这个陈述,所以我确定我会得到什么?
另外,如果我添加括号会发生什么; 这会改变运营的顺序吗?
我的操作顺序会因语言而异吗?
嗨,我有这个例子:
(1)
if(false && false ||true){
System.out.println("a");
}
Run Code Online (Sandbox Code Playgroud)
结果:
a
Run Code Online (Sandbox Code Playgroud)
和
(2)
if(false && false | true){
System.out.println("a");
}
Run Code Online (Sandbox Code Playgroud)
结果:
(empty)
Run Code Online (Sandbox Code Playgroud)
在情况(1)中我们有短路OR,但在第二种情况下我们有长电路OR.行为的差异从哪里来?我知道表达式从左到右进行评估,AND的优先级高于OR,所以我无法弄清楚为什么在情况2中会发生这种情况?