C# - bool 値を1行で反転させる記法
初めに
true を false に、false を true に反転させる書き方はさまざまですが、if~else 文を書くのは行数が多く冗長な気がします。本記事では、bool 値を反転させる簡潔な方法を2つ紹介します。
Index
(確認)if~else 文の場合
if~else文の場合、次のような記述になります。最も分かりやすい形だと思いますが、これだけで8行取ってしまっているので、もう少し短くしたいです。
//value は bool 値 if (value) { value = false; } else { value = true; }
条件演算子を使う方法
?:演算子を使う方法があります。これは C# 唯一の三項演算子で、1つ目の項の結果に応じて、2つ目か3つ目のどちらかの項の値を返すものになります。
演算子 | 説明 |
---|---|
c ? x : y | c が true ならば x を、false ならば y を返します。 |
※1項目は bool 型、2項目と3項目は同じ型であればすべての型が利用可能
bool 値を反転させる場合は次のようにすればよいです。
//value は bool 値 value = value ? false : true;
value が true ならば false に、false ならば true になります。
なお、2項目か3項目のどちらかが返り値となるため、代入する変数の型も bool でなくてもよいです。例えば、?:演算子は次のような使い方もできます。
int num = 7; //numが5以上ならば10に, それ以外ならば0になる int a = (num >= 5) ? 10 : 0