【发布时间】:2011-01-16 20:17:54
【问题描述】:
让我们以对象Cat 为例。我想确定“not null”cat 是橙色还是灰色。
if(cat != null && cat.getColor() == "orange" || cat.getColor() == "grey") {
//do stuff
}
我相信 AND 首先出现,然后 OR。不过我有点模糊,所以这是我的问题:
有人可以指导我完成此声明,以便我确定会发生什么吗?
另外,如果我添加括号会发生什么;这会改变操作顺序吗?
我的操作顺序会因语言而异吗?
【问题讨论】:
-
如果您有一点模糊,请加上括号,这样一目了然。
-
即使对你来说并不模糊,也要加上括号,以便其他人也能理解。
-
来自关于布尔逻辑的维基百科:在这种[歧义]的情况下,可以使用括号来阐明操作的顺序。与往常一样,最里面的对中的操作首先执行,然后是下一个对,依此类推,直到完成括号内的所有操作。然后执行括号外的任何操作。
-
可能是众多 StackOverFlow 巨魔之一。别担心。我觉得你的回答也不错。
-
您很可能想使用 cat.getColor().equals("orange") 而不是 '=='。
标签: java logic boolean evaluation operator-precedence