Let's say I have a boolean condition a AND b OR c AND d and I'm using a language where AND has a higher order of operation precedent than OR. I could write this line of code:If (a AND b) OR (c AND d) Then ...But really, that's equivalent to:If a AND b OR c AND d Then ...Are there any arguments in for or against including the extraneous parentheses? Does practical experience suggest that it is worth including them for readability? Or is it a sign that a developer needs to really sit down and become confident in the  basics of their language?
Should I use parentheses in logical statements even where not necessary?
coding style;operator precedence
Good developers strive to write code that is clear and correct.  Parentheses in conditionals, even if they are not strictly required, help with both.As for clarity, think of parentheses like comments in code: they aren't strictly necessary, and in theory a competent developer should be able to figure out code without them.  And yet, these cues are exceedingly helpful, because:They reduce the work required to understand the code.They provide confirmation of the developer's intent.Furthermore, extra parentheses, just like indentations, whitespace, and other style standards, help visually organize the code in a logical way.As for correctness, conditions without parentheses are a recipe for silly mistakes.  When they happen, they can be bugs that are hard to find--because often an incorrect condition will behave correctly most of the time, and only occasionally fail.And even if you get it right, the next person to work on your code may not, either adding errors to the expression or misunderstanding your logic and thus adding errors elsewhere (as LarsH rightly points out).I always use parentheses for expressions that combine and and or (and also for arithmetic operations with similar precedence issues).