Let’s take a simple example of an object Cat. I want to be sure the “not null” cat is either orange or grey.
if(cat != null && cat.getColor() == "orange" || cat.getColor() == "grey") {
//do stuff
}
I believe AND comes first, then the OR. I’m kinda fuzzy though, so here are my questions:
-
Can someone walk me through this statement so I’m sure I get what happens?
-
Also, what happens if I add parentheses; does that change the order of operations?
-
Will my order of operations change from language to language?
The Java Tutorials has a list illustrating operator precedence. The equality operators will be evaluated first, then
&&, then||. Parentheses will be evaluated before anything else, so adding them can change the order. This is usually pretty much the same from language to language, but it’s always a good idea to double check.It’s the small variations in behavior that you’re not expecting that can cause you to spend an entire day debugging, so it’s a good idea to put the parentheses in place so you’re sure what the order of evaluation will be.