title: Reason for the existence of non-short-circuit logical operators
body: <p>When used with <code>boolean</code> operands, <code>&amp;</code> and <code>|</code> become <em>logical</em> operators per <a href="http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.22.2" rel="noreferrer">Section 15.22.2 of the JLS</a>. Unlike <code>&amp;&amp;</code> and <code>||</code>, however, these don't short-circuit; they always evaluate both sides. I have a silly question: Why are the less-efficient non-short-circuit logical operators (<code>&amp;</code>, <code>|</code>) still there, when we have the more-efficient short-circuit logical operators (<code>&amp;&amp;</code>, <code>||</code>)? I mean, what is the real usage of the non-short-circuit logical operators, as opposed to with the short-circuit logical operators? In other words, what is the usage of always evaluating both sides by using the non-short-circuit logical operators?</p>