相关疑难解决方法(0)

在Java中,布尔的"操作顺序"是什么?

我们来看一个对象的简单例子Cat.我想确定"not null" cat是橙色还是灰色.

if(cat != null && cat.getColor() == "orange" || cat.getColor() == "grey") {
//do stuff
}
Run Code Online (Sandbox Code Playgroud)

我相信AND先来,然后是OR.我有点模糊,所以这是我的问题:

  1. 有人可以引导我完成这个陈述,所以我确定我会得到什么?

  2. 另外,如果我添加括号会发生什么; 这会改变运营的顺序吗?

  3. 我的操作顺序会因语言而异吗?

java evaluation logic boolean operator-precedence

58
推荐指数
5
解决办法
6万
查看次数

java中的一个if语句中的多个逻辑表达式

嗨,我有这个例子:

  (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中会发生这种情况?

java boolean short-circuiting

1
推荐指数
1
解决办法
4425
查看次数