title: Don't understand why Conditional "OR" operator not working for me?
body: <p>Am doing this online exercise and one question is: </p>
  
  <blockquote>
    <p>We'll say that a number is "teen" if it is in the range 13..19
       inclusive. Given 2 int values, return true if one or the other is
       teen, but not both</p>
  </blockquote>
  
  <p>So I should return true if one of the int values that it passes into my method is in the range of 13 and 19 but return false if both are in the range; This is the code I wrote:</p>
  
  <pre><code> public boolean loneTeen(int a, int b) {
    if ( a &gt;= 13 &amp;&amp; a &lt;= 19 || b &gt;= 13 &amp;&amp; b &lt;= 19 )
    return true;
    else
    return false;
  }
  </code></pre>
  
  <p>basically if integer a is between 13 and 19 inclusive or if integer b is between 13 and 19 inclusive I return true otherwise I return false. When I test this it works except If I pass in 13 and 13 for integer a and b, I get true instead of false. My question is I've looked up the conditional "OR(||)" operator and it says that:</p>
  
  <ul>
  <li>if the first operand determines the overall value for the condition, then the second operand is not evaluated.</li>
  </ul>
  
  <p>So when I use "Or" operator  like my code above doesn't it mean if a is in the range return true or if b is in the range return true but if both are in the range return false? what is the differance between using</p>
  
  <ul>
  <li><code>if ( a &gt;= 13 &amp;&amp; a &lt;= 19 || b &gt;= 13 &amp;&amp; b &lt;= 19 )</code>
  and</li>
  <li><code>if ( a &gt;= 13 &amp;&amp; a &lt;= 19 &amp;&amp; b &gt;= 13 &amp;&amp; b &lt;= 19 )</code>
  Why isn't it returning false if both values passed in are in the range?</li>
  </ul>