C# の switch ステートメントは、式に従って特定のステートメント ブロックを実行できる「 if else if ステートメント」に似ています。構文形式は次のとおりです。
switch(value){
case value1:
//logic
break;
case value2:
//logic
break;
… …
default:
break;
}
switch ステートメントを使用する場合は、次の規則に従う必要があります。
- switch ステートメントの式の値は、整数または列挙型である必要があります。
- switch ステートメントには任意の数の case ステートメントを含めることができ、各 case キーワードの後には式と比較する値とコロンが続きます。
- case キーワードの背後にある値は、スイッチ内の式の値と同じデータ型を持つ必要があり、定数である必要があります (プログラムの実行によって変化しない固定値として理解することもできます)。
- 式の値が case の値と等しい場合、case の背後にあるステートメントが実行され、break キーワードが検出されたときに停止します。
- Break キーワードが検出されると、switch ステートメントは実行を停止し、switch ステートメント以外の次のコード行にジャンプして実行を継続します。
- すべての case ステートメントに Break キーワードを含める必要はありません。case ステートメントが空の場合 (case ステートメントの後に実行するコードがない)、break キーワードは含められない可能性があります。このとき、プログラムは引き続き実行されます。後続の case ステートメントは、break キーワードが検出されるまで続きます。
- C# では、ある case ステートメントから次の case ステートメントへの連続実行が許可されていないため、実行するステートメントが case ステートメントに含まれている場合は、break キーワードまたは他のジャンプ ステートメントを含める必要があります。
- switch ステートメントの最後には、オプションのデフォルト (デフォルト オプション) を指定できます。いずれの case ステートメントも式に一致しない場合、デフォルト部分のコードが実行され、デフォルトの Break ステートメントは省略できます。
- C# では、ある case ステートメントから別の case ステートメントへのジャンプはサポートされていません。ある case ステートメントから別の case ステートメントにジャンプしたい場合は、
goto default
などのgoto ステートメントを使用できます。
【例】入力された学年に応じて学年の成績を評価します。
using System;
namespace it-kiso.com
{
class Demo
{
static void Main(string[] args){
Console.WriteLine("学生の試験成績を入力してください(0〜100の整数)");
int points = Convert.ToInt32(Console.ReadLine());
switch (points / 10)
{
case 10:
Console.WriteLine("優秀");
break;
case 9:
Console.WriteLine("優秀");
break;
case 8:
Console.WriteLine("良好");
break;
case 7:
Console.WriteLine("及格");
break;
case 6:
Console.WriteLine("及格");
break;
default:
Console.WriteLine("不合格");
break;
}
}
}
}
「C# の switch ステートメント」についてわかりやすく解説!絶対に観るべきベスト2動画
Switch statement in C# – Part 19 | C# Tutorial
[Khóa học lập trình C# Cơ bản] – Bài 10: Switch case trong C# | HowKteam