C# 三項 (? :) 演算子
C# 三項 (? :) 演算子
この記事では、C# の三項演算子と、それを使用してプログラムの流れを制御する方法について学びます。
三項演算子は、if...else ステートメントの代わりになります。したがって、このチュートリアルで先に進む前に、C# の if...else ステートメントを確認してください (まだ行っていない場合)。
三項演算子の構文は次のとおりです:
Condition ? Expression1 : Expression2;
三項演算子は次のように機能します:
Condition
で記述された式の場合true
です 、Expression1
の結果 三項演算子によって返されます。false
の場合 、Expression2
の結果 返されます。
たとえば、次のコードを置き換えることができます
if (number % 2 == 0) { isEven = true; } else { isEven = false; }
と
isEven = (number % 2 == 0) ? true : false ;
三項演算子と呼ばれる理由
この演算子は 3 つの オペランド を取ります 、したがって三項演算子と呼ばれます。
例 1:C# 三項演算子
using System;
namespace Conditional
{
class Ternary
{
public static void Main(string[] args)
{
int number = 2;
bool isEven;
isEven = (number % 2 == 0) ? true : false ;
Console.WriteLine(isEven);
}
}
}
プログラムを実行すると、出力は次のようになります:
True
上記のプログラムでは、 2
変数 number に割り当てられます .次に、三項演算子を使用して number かどうかを確認します。 偶数かどうか
2 は偶数なので、式 (number % 2 == 0
) true
を返します .三項演算子を使用して、数値、文字列、および文字を返すこともできます。
戻り値を変数 isEven に格納する代わりに 、三項演算子によって返された値を次のように直接出力できます。
Console.WriteLine((number % 2 == 0) ? true : false);
三項演算子を使用する場合
三項演算子を使用して、複数行のコードを 1 行に置き換えることができます。ただし、使いすぎてはいけません。
たとえば、次の if..else if コードを置き換えることができます
if (a > b) { result = "a is greater than b"; } else if (a < b) { result = "b is greater than a"; } else { result = "a is equal to b"; }
1行のコードで
result = a > b ? "a is greater than b" : a < b ? "b is greater than a" : "a is equal to b";
ご覧のとおり、三項演算子を使用するとコードの長さは短くなる可能性がありますが、コードのロジックを理解するのが難しくなります。
したがって、三項演算子のみを使用して単純な if else ステートメントを置き換えることをお勧めします。
C言語