C# でブール変数を切り替えます
この記事では、C# でブール変数を切り替える方法について説明します。
C# でブール変数を切り替えます
ブール変数を切り替えるとは、その値を true と false の間で変更することを意味します。これを行う簡単な方法の 1つは、次のコードを使用することです。このコードは、関数にすることもできます。
bool flag = false;
if (flag == false) {
flag = true;
} else {
flag = false;
}
関数を作成する場合は、次のようにすることができます。
using System;
class Program
{
static void toggle(ref bool flag)
{
if (flag == false)
{
flag = true;
}
else
{
flag = false;
}
}
static void Main(String[] args)
{
bool flag = false;
toggle(ref flag);
Console.WriteLine(flag);
}
}
ref キーワードを使用して、flag パラメーターが参照によって渡されるようにしているため、関数内で変更されます。
出力は次のようになります。
True
次に、これらの長いコード行を省略して、はるかに短い行に切り替える方法を見てみましょう。
C# で ! 演算子を使用してブール変数をトグルする
このトグルを簡単な構文で行う方法の 1つは、値をその反対に変換する ! 演算子を使用することです。
したがって、次のように書くことができます。
flag = !flag;
flag が true の場合、False になります。false の場合、True になります。
出力は同じになります:
True
完全なコードは以下に文書化されています:
using System;
class Program
{
static void Main(string[] args)
{
bool flag = false;
flag = !flag;
Console.WriteLine(flag);
}
}
C# のブール変数を切り替えるために^(XOR)演算子を使用すべきでない理由
XOR 演算子は、bool 変数の値が true から false の場合にのみ変換する傾向があります。ただし、値がすでに false である反対の場合には機能しません。
以下の例を見てみましょう。
using System;
class Program
{
static void Main(string[] args)
{
bool flag = true;
flag ^= flag;
Console.WriteLine(flag);
}
}
上記を実行すると、出力は次のようになります。
False
ただし、flag が false に設定されている場合、XOR を設定しても True には変更されません。
using System;
class Program
{
static void Main(string[] args)
{
bool flag = false;
flag ^= flag;
Console.WriteLine(flag);
}
}
出力は次のようになります。
False
なんで?ええと、1 は true であり、0 は false です。flag が true である XOR を置くと、結果は 0 または false になります。
しかし、flag が false である XOR を配置した場合でも、結果は 0 のままになります。XOR テーブルを覚えているなら、それがどのように機能するかです。

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub