if と else の条件文を置き換える意思決定に使用される演算子は、C# では三項演算子と呼ばれます。これは 3 つの引数で構成され、最初の引数は比較に使用され、この比較の結果が true の場合、 2 番目の引数が返され、比較の結果が false の場合、3 番目の引数が返されます。この演算子は、if-else ステートメントを使用する最適化された方法と考えることができます。
構文:
Boolean Expression ? First statement : Second statement
上記の構文は三項演算子を表します。 3 つの部分から構成されます。構文の最初の部分は ? の前です。これは条件式であるため、ブール値 true または false を返します。構文の 2 番目の部分は「?」の前と「:」の後にあり、最初の部分の条件式の結果が true の場合に実行されます。構文の「:」ステートメントの後の 3 番目の部分は、最初の部分である条件式の結果が false の場合に実行されます。
以下は、三項演算子のさまざまな例です。
if-else ステートメントを使用して 2 つの値を比較する、以下の C# プログラムについて考えてみましょう。
コード:
using System; namespace Project { class MainClass { public static void Main(string[] args) { int a = 30; int b = 40; if (a < b) { Console.WriteLine("a's value is less than b"); } else { Console.WriteLine("b's value is less than a"); } } } }
出力:
上記のプログラムでは、2 つの変数 a と b が定義され、値が割り当てられています。 if-else 条件文を使用して、それらの値が相互に比較され、どちらが大きいかが判断されます。上記のプログラムは、2 つの値を相互に比較する 20 行のコードで構成されています。同じコードは、次のコードで使用されている三項演算子を使用して 14 行に最適化できます。
三項演算子を使用して 2 つの値を比較する、以下の C# プログラムを考えてみましょう。
コード:
using System; namespace Project { class MainClass { public static void Main(string[] args) { int a = 40; int b = 30; Console.WriteLine((a < b) ? "a's value is more than b" : "b's value is less than a"); } } }
出力:
上記のプログラムでは、2 つの変数 a と b が定義され、値が割り当てられています。これらの値は、三項演算子を使用して互いに比較され、どちらが大きいかが判断されます。条件文が実行され、その結果が変数 res に代入されます。条件ステートメントの結果が true の場合、「?」の後の 2 番目のステートメント (a の値が b より大きいこと) が出力されます。それ以外の場合は、「:」の後の 3 番目のステートメント b の値が a より小さいことが出力されます。
「?」または「:」の後の 2 番目の引数または 3 番目の引数が再び条件文である場合、その演算子はネストされた三項演算子と呼ばれます。たとえば、以下のプログラムを考えてみましょう:
コード:
using System; namespace Project { public class MainClass { public static void Main(string[] args) { int a = 10; int b = 8; Console.WriteLine(a> b ? "a's value is more than b" : a < b ? "a's value is less than b" : a == b ? "C" : "No result"); } } }
出力:
上記のプログラムでは、2 つの変数 a と b が定義され、値が割り当てられています。 C# の三項演算子を使用して、それらの値が相互に比較され、どちらが大きいか、または等しいかどうかが判断されます。条件文が実行され、その結果が変数 res に代入されます。条件文の結果が true の場合、「?」の後の 2 番目の文 (これも条件文 a
注: 三項演算子はステートメント を実行できません。最初の部分の条件文の結果に応じて、2 番目の部分または 3 番目の部分に存在する式または値のみを返します。
C# の三項演算子の例
次に、C# の三項演算子のさまざまな例を示します。
ネストされた三項演算子を使用して、指定された数値の最大値を見つける C# プログラム。
コード:
using System; using System.IO; using System.Text; //Define Namespace namespace program { //Define class public class large { //Define main method public static void Main(string[] args) { //Define three variables to take the input int x; int y; int z; //Get the input from the users Console.Write("First number must be entered : "); x = Convert.ToInt32(Console.ReadLine()); Console.Write("Second number must be entered: "); y = Convert.ToInt32(Console.ReadLine()); Console.Write("Third number must be entered : "); z = Convert.ToInt32(Console.ReadLine()); //largest number is found out by using nested ternary operator int large = (x>y)?((x>z)?x:z):(y>z?y:z); //display the largest number Console.WriteLine("{0} is the largest number", large); Console.ReadLine(); } } }
出力:
三項演算子を使用して、指定された数値が偶数かどうかを確認する C# プログラム。
コード:
using System; // Define Namespace namespace program { // Define class public class check { // Define main method public static void Main(string[] args) { //Assign the number which need to be checked if it is even or not int number = 8; bool ifitisEven; //Logic to check if ithe given number is even or not ifitisEven = (number % 2 == 0) ? true : false ; Console.WriteLine(ifitisEven); } } }
出力:
このチュートリアルでは、定義を通じて C# の三項演算子の概念を理解した後、C# での三項演算子の動作を理解します。次に、入れ子になった三項演算子と単純な三項演算子を使用するさまざまな C# プログラムと、プログラムの結果に含まれる出力スナップショットを含むプログラムを使用したプログラムの動作について理解します。
以上がC# の三項演算子の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。