English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
3つの条件以上をテストする必要がある場合、switch文を使用してif-else文を代用することができます。ここでは、switch文とそれがC#プログラムでどのように効果的に使用されるかについて学びます。
以下はswitch文の一般的な文法です。
文法:
switch(match expression/variable) { case constant-value: //を実行する文; break; default: //を実行する文; break; }
switch文はswitchキーワードで始まり、そのキーワードは一致する表現または括弧switch(一致する表現match expression)内の変数を含みます。この一致する表現または変数の結果は、大括弧{}内で指定されたcase条件に基づいてテストされます。caseはユニークな定数値で指定され、コロン:で終わります。各状況は実行するべき一つまたは複数の文を含みます。定数値と一致する表現/変数の値が一致すればcaseを実行します。switch文はオプションのデフォルトタグも含むことができます。caseが実行されない場合、デフォルトタグを実行します。break、returnまたはgotoキーワードはswitch状況からプログラムコントロールを退出するために使用されます。
以下の例はシンプルなswitch文を示しています。
int x = 10; switch (x { case 5: Console.WriteLine("xの値は"5"); break; case 10: Console.WriteLine("xの値は"10"); break; case 15: Console.WriteLine("xの値は"15"); break; default: Console.WriteLine("未知の値"); break; }
の値です。10
上記では、switch(x)文は変数xを含んでおり、その値は各caseの の値と一致します。上記のswitch文は定数値を含んでいます。5、10および15の3つの状況を含みます。また、switchの値と一致しない場合に対応するdefaultタグも含まれています。 変数/表現が一致し、そのタグを実行します。各caseは:の後から始まり、実行するべき文を含みます。Xの値は第2種の値と一致します。10: 一致し、したがって出力値はxの値が10
switch文は、char、string、bool、intまたはenumの返値型が非空の表現を含むことができます。
switch文はまた、実行時に各caseに対してテストされる表現を含むことができます。
int x = 125; switch (x % 2) { case 0: Console.WriteLine($"{x} が偶数"); break; case 1: Console.WriteLine($"{x} は奇数"); break; }
125は奇数
Switch Caseはユニークな定数値でなければなりません。bool、char、string、integer、enumまたは対応するnullの可能なタイプができます。
C#において 7。0以降、switch caseは非ユニークな値を含むことができます。この場合、最初に一致するcaseを実行します。
考虑以下简单的switch文示例。
string statementType = "switch"; switch (statementType) { case "if.else": Console.WriteLine("if...else文"); break; case "ternary": Console.WriteLine("三項演算子"); break; case "switch": Console.WriteLine("switch文"); break; }
switch文
同じ文を実行するために複数のcaseを組み合わせることができます。
int x = 5; switch (x { case 1: Console.WriteLine("x = 1"); break; case 2: Console.WriteLine("x = 2"); break; case 4: case 5: Console.WriteLine("x = 4 または x = 5"); break; default: Console.WriteLine("x > 5"); break; }
各caseは、break、return、goto文、または他の方法で明示的に退出する必要があります。これにより、プログラムコントロールがcaseから退出し、デフォルトのcaseに入ることはありません。
以下では return キーワードを使用しています。
static void Main(string[] args) { int x = 125; Console.Write( isOdd(x)? "偶数値" : "奇数値"); } static bool isOdd(int i, int j) { switch (x % 2) { case 0: return true; case 1: return false; default: return false; } return false; }
奇数値
break、return、goto文または同じ定数値を持つswitch caseがない場合、コンパイル時エラーが発生します。
int x = 1; switch (x { case 0: Console.WriteLine($"{x} is even value"); break; case 1: Console.WriteLine($"{x} is odd Value"); break; case 1: // エラー-コントロールは、(「 case 1:”)別の case タグに移動 Console.WriteLine($"{x} is odd Value"); defaut: Console.WriteLine($"{x} is odd Value"); break; }
switch文は別のswitch文の中で使用できます。
int j = 5; switch (j { case 5: Console.WriteLine(5); switch (j - 1) { case 4: Console.WriteLine(4); switch (j - 2) { case 3: Console.WriteLine(3); break; } break; } break; case 10: Console.WriteLine(10); break; case 15: Console.WriteLine(15); break; default: Console.WriteLine(100); break; }
5 4 3
switch 文は if else 文の代替手段です。
switch 文は指定された case に一致する一連の定数をテストするに従ってマッチングします。/変数。
switch case を終了するには、break、return、goto キーワードを含む必要があります。
switch にはオプションの default タグを含むことができます。case が実行されない場合にこのタグを実行します。
C# コンパイラは case に欠けている:、定数値のエラーを表示し、case を終了します。
C#から7.0から、switch 条件には一意でない値を含むことができます。この場合、最初に一致するケースを実行します。