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