C# switch ステートメント
C# の switch ステートメント
この記事では、C# の switch ステートメントと、例を使用してそれらを使用する方法について学習します。
Switch ステートメントを使用して、C# の if...else if ステートメントを置き換えることができます。 switch over if...else if ステートメントを使用する利点は、switch を使用すると、コードがよりきれいになり、読みやすくなることです。
switch ステートメントの構文は次のとおりです。
switch (variable/expression) { case value1: // Statements executed if expression(or variable) = value1 break; case value2: // Statements executed if expression(or variable) = value1 break; ... ... ... ... ... ... default: // Statements executed if no case matches }
switch ステートメントは expression を評価します (または 変数 )、その値を各ケースの値 (または式) と比較します (value1 , 値2 、…)。一致する値が見つかると、そのケース内のステートメントが実行されます。
ただし、上記のいずれの場合も式に一致しない場合、default
内のステートメントは ブロックが実行されます。 switch の最後のデフォルト ステートメントは、if else ステートメントの else ブロックに似ています。
ただし、switch ステートメントの問題は、一致する値が見つかると、その後のすべてのステートメントを switch ブロックの最後まで実行することです。
これを避けるために、break
を使用します。 各ケースの最後にステートメント。 break ステートメントは、switch ステートメントの実行を終了することにより、プログラムが一致しないステートメントを実行するのを停止します。
break ステートメントの詳細については、C# の break ステートメントをご覧ください。 .
例 1:C# の switch ステートメント
using System;
namespace Conditional
{
class SwitchCase
{
public static void Main(string[] args)
{
char ch;
Console.WriteLine("Enter an alphabet");
ch = Convert.ToChar(Console.ReadLine());
switch(Char.ToLower(ch))
{
case 'a':
Console.WriteLine("Vowel");
break;
case 'e':
Console.WriteLine("Vowel");
break;
case 'i':
Console.WriteLine("Vowel");
break;
case 'o':
Console.WriteLine("Vowel");
break;
case 'u':
Console.WriteLine("Vowel");
break;
default:
Console.WriteLine("Not a vowel");
break;
}
}
}
}
プログラムを実行すると、出力は次のようになります:
Enter an alphabet X Not a vowel
この例では、ユーザーはアルファベットを入力するよう求められます。アルファベットは ToLower()
を使用して小文字に変換されます 大文字の場合は method.
次に、switch ステートメントは、ユーザーが入力したアルファベットが a, e, i, o or u
のいずれかであるかどうかをチェックします。 .
大文字と小文字のいずれかが一致する場合、Vowel
それ以外の場合、コントロールはデフォルト ブロックと Not a vowel
に移動します 出力として印刷されます。
すべての母音の出力は同じであるため、ケースを次のように結合できます:
例 2:ケースをグループ化した C# switch ステートメント
using System;
namespace Conditional
{
class SwitchCase
{
public static void Main(string[] args)
{
char ch;
Console.WriteLine("Enter an alphabet");
ch = Convert.ToChar(Console.ReadLine());
switch(Char.ToLower(ch))
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
Console.WriteLine("Vowel");
break;
default:
Console.WriteLine("Not a vowel");
break;
}
}
}
}
両方のプログラムの出力は同じです。上記のプログラムでは、すべての母音が出力 Vowel
を出力します。 そして、switch ステートメントから抜け出します。
switch ステートメントは if...else if ステートメントよりもコードをきれいに見せますが、switch は限られたデータ型で動作するように制限されています。 C# の Switch ステートメントは、以下でのみ機能します:
- プリミティブ データ型:bool、char、および整数型
- 列挙型 (Enum)
- 文字列クラス
- 上記のデータ型の Null 許容型
例 3:C# の switch ステートメントを使用した簡単な電卓プログラム
using System;
namespace Conditional
{
class SwitchCase
{
public static void Main(string[] args)
{
char op;
double first, second, result;
Console.Write("Enter first number: ");
first = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter second number: ");
second = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter operator (+, -, *, /): ");
op = (char)Console.Read();
switch(op)
{
case '+':
result = first + second;
Console.WriteLine("{0} + {1} = {2}", first, second, result);
break;
case '-':
result = first - second;
Console.WriteLine("{0} - {1} = {2}", first, second, result);
break;
case '*':
result = first * second;
Console.WriteLine("{0} * {1} = {2}", first, second, result);
break;
case '/':
result = first / second;
Console.WriteLine("{0} / {1} = {2}", first, second, result);
break;
default:
Console.WriteLine("Invalid Operator");
break;
}
}
}
}
プログラムを実行すると、出力は次のようになります:
Enter first number: -13.11 Enter second number: 2.41 Enter operator (+, -, *, /): * -13.11 * 2.41 = -31.5951
上記のプログラムは、ユーザーからの入力として 2 つのオペランドと演算子を受け取り、演算子に基づいて演算を実行します。
入力は ReadLine()
を使用してユーザーから取得されます および Read()
方法。詳細については、C# の基本的な入力と出力をご覧ください。
このプログラムは、意思決定に switch case ステートメントを使用します。または、if-else if ラダーを使用して同じ操作を実行できます。
C言語