229

単純なif-elseよりもJavaでブール値を否定する良い方法はありますか?

if (theBoolean) {
    theBoolean = false;
} else {
    theBoolean = true;
}
4

9 に答える 9

580
theBoolean = !theBoolean;
于 2008-10-22T02:45:16.757 に答える
179
theBoolean ^= true;

変数が 4 文字より長い場合、キーストロークが少なくなります

編集: コードは、Google 検索用語として使用されると、有用な結果を返す傾向があります。上記のコードはそうではありません。それが必要な人にとっては、ここで説明されているビット単位のXORです。

于 2008-10-22T03:28:55.153 に答える
47

いくつかあります

「明白な」方法(ほとんどの人にとって)

theBoolean = !theBoolean;

「最短」の方法(ほとんどの場合)

theBoolean ^= true;

「最も視覚的な」方法(最も不確実)

theBoolean = theBoolean ? false : true;

おまけ: トグルしてメソッド呼び出しで使用

theMethod( theBoolean ^= true );

代入演算子は常に割り当てられたものを返すため、これはビットごとの演算子を介して値を切り替え、メソッド呼び出しで使用される新しく割り当てられた値を返します。

于 2016-11-14T16:58:57.963 に答える
-4

前:

boolean result = isresult();
if (result) {
    result = false;
} else {
    result = true;
}

後:

boolean result = isresult();
result ^= true;
于 2015-04-02T09:49:38.663 に答える