This code prints true false false. This may be because it is evaluated from left to right and as "a" is true and short circuit operator is used rest of the expression is not evaluated. My doubt here is that && has higher precedence than || then why isn't it evaluated first. Something like
Result here is 13 and not 18, that means * was done before + as * has higher than precedence +. Why doesn't this apply to first case?