if statement OR logic oddity
<p>I'm calling this function from a jUnit test case with the following information:</p>

<pre><code>// abbr = "US";
// Countries  = array of two objects one with iso2 = "us"
public Country getCountryFromAbbr(String abbr) {
    abbr = abbr.toLowerCase();
    for (int i = 0; i &lt; Countries.size(); i++) {
        Country country = Countries.get(i);
        String iso2 = country.ISO2.toLowerCase();
        String iso3 = country.ISO3.toLowerCase();

        if (iso2.equals(abbr) || iso3.equals(abbr)) {
            return country;
        }
    }

    return null;
}
</code></pre>

<p>When I debug, the second object with <code>ISO2</code> of <code>us</code> <code>iso2.equals(abbr)</code> is true and the other is <code>false</code>. However, country is not returned and the debugger finishes the loop and returns <code>null</code>. </p>

<p>I'm confused as true || false is true. Am I missing something?</p>

<p>Here's the mock of the countries:</p>

<pre><code>    List&lt;Country&gt; Countries = new ArrayList&lt;Country&gt;();
    Country country = new Country();
    country.CountryId = 1;
    country.CountryName = "Great Britian";
    country.ISO2 = "GB";
    country.ISO3 = "GBR";
    Countries.add(country);

    Country usa = new Country();
    usa.CountryId = Studio.USA_COUNTRY_ID;
    usa.CountryName = "United States of America";
    usa.ISO2 = "US";
    usa.ISO3 = "USA";
    Countries.add(usa);
    return Countries;
</code></pre>

<p><hr/>
EDIT:
I'm using Eclipse and debugging using my Droid X 2.3.3</p>
