是否有更好的方法來否定Java中的布爾值而不是簡單的if-else?在Java中切換布爾變量的最簡單方法?
if (theBoolean) {
theBoolean = false;
} else {
theBoolean = true;
}
是否有更好的方法來否定Java中的布爾值而不是簡單的if-else?在Java中切換布爾變量的最簡單方法?
if (theBoolean) {
theBoolean = false;
} else {
theBoolean = true;
}
theBoolean = !theBoolean;
這真的很明顯 - 哎呀!不知道爲什麼我沒有想到它。謝謝。 – 2008-10-22 02:46:23
我投票贊成!! bool運算符類似於++ i和--i ;-)) – ypnos 2008-10-22 02:50:19
!布爾看起來像是一個自然的選擇 - 可能在未來。 – 2009-01-07 06:38:29
theBoolean ^= true;
較少的按鍵,如果你的變量大於四個字母
不再前:
boolean result = isresult();
if (result) {
result = false;
} else {
result = true;
}
後:
boolean result = isresult();
result ^= true;
的 「明顯」 的方式(大多數人)
theBoolean = !theBoolean;
「最短」 的方式(大部分時間)
theBoolean ^= true;
「最直觀」的方式(最不確定)
theBoolean = theBoolean ? false : true;
theMethod(theBoolean ^= true);
切換,並使用自賦值運算符總是返回什麼已被分配,這將切換通過位運算符的值,然後返回新分配的值用於方法調用。
如果使用布爾NULL值,並認爲他們是假的,試試這個:
static public boolean toggle(Boolean aBoolean) {
if (aBoolean == null) return true;
else return !aBoolean;
}
如果不交給布爾NULL值,試試這個:
static public boolean toggle(boolean aBoolean) {
return !aBoolean;
}
這些都是乾淨因爲他們顯示方法簽名的意圖,與相比更容易閱讀!運營商,並可以很容易地調試。
使用
boolean bTrue = true
boolean bFalse = false
boolean bNull = null
toggle(bTrue) // == false
toggle(bFalse) // == true
toggle(bNull) // == true
當然,如果你使用Groovy的或允許擴展方法的語言,你可以註冊一個擴展,只是去做:
Boolean b = false
b = b.toggle() // == true
哦不錯,我正要問同樣的問題,雖然我的問題將特定於JavaScript/as3,或ECMAScript一般我想......這將很容易被這個問題所覆蓋。 – 2009-01-07 06:36:50
如果沒有!操作符?? – onmyway133 2014-09-12 07:10:59