2017-01-22 10 views
-1

それ以外の場合は2つを1つのステートメントに凝縮する必要があります。 コードは完璧ですが、2つのif-elseを持つことはできません。両方のコードに同じ問題があります。Java条件付きでシンプルにする

public boolean isClear(int index) { 
    if (index < 32) { 
     if ((bits & 0x00000001 << index) == 0) 
      return true; 
     else 
      return false; 
    } else 
     return true; 
} 

public boolean isSet(int index) { 
    if (index < 32) { 
     if ((bits & 0x00000001 << index) != 0) 
      return true; 
     else 
      return false; 
    } else 
     return false; 
} 
+2

「&&」を使用するとどうなりますか? – NewUser

+0

あなたは自分でそれをしたくない、あるいはここでの質問/混乱は何ですか? – Tom

+0

私はそれを行う方法を知らない。 – BabyC0d3eR

答えて

2

短い:

public boolean isClear(int index) 
{ 
    return (index < 32) ? (bits & 0x00000001<<index) == 0 : true; 
} 
2

ことがありtrueを返しisSetで唯一のパスがあるので、return。同様に、

public boolean isSet(int index) { 
    return (index < 32) && ((bits & 0x00000001 << index) != 0); 
} 

そしてisClearはその否定することができます。

public boolean isClear(int index) 
{ 
    return !isSet(index); 
} 
+0

迅速な対応をありがとう。それは魅力のように働いた。また、@ schwobasegglに感謝します。 – BabyC0d3eR