2017-01-22 39 views
-1

我需要將兩個if else壓縮成一個語句。代碼是完美的,但它不能有兩個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

有在isSet只有一條路徑返回true,所以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