This week's book giveaways are in the Scala and Android forums. We're giving away four copies each of Machine Learning Systems: Designs that scale and Xamarin in Action: Creating native cross-platform mobile apps and have the authors on-line! See this thread and this one for details.
Evaluation order is based on the operators precedence and the associatively. In this case, the AND operator has a slightly higher precedence than the OR operator. And they both have left-right assoc. So...
if (b1 & b2 | b3) ===> if ((b1 & b2) | b3)
if (b1 | b2 & b3 & b4) ===> if (b1 | ((b2 & b3) & b4))
On the older versions of the exam, understanding these kinds of precedence rules was important. On the newer versions we've just added parentheses so that you won't have to memorize this stuff. If you encounter mock exam questions that test you on precedence, just know that that's an old style question and not too valid anymore.
p.s. That said, the short circuit operators are STILL important to understand
Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)
Can you really tell me that we aren't dealing with suspicious baked goods? And then there is this tiny ad: