導入
「値が1なら○、2なら△、3なら□」のように1つの値を多くの候補と照合するとき、ifを並べるよりswitchが読みやすくなります。現代のC#では簡潔なswitch式が主流です。
図解
flowchart TB
V["day の値"] --> S{"switch"}
S -->|1| M["月曜"]
S -->|2| T["火曜"]
S -->|それ以外 _| O["不明"]
サンプル
int day = 2;
// switch 式(=> で値を返す。現代的な書き方)
string name = day switch
{
1 => "月曜",
2 => "火曜",
3 => "水曜",
_ => "不明", // _ はどれにも当てはまらない場合(default)
};
Console.WriteLine(name); // 火曜
// 範囲でも分岐できる
int score = 85;
string grade = score switch
{
>= 90 => "A",
>= 70 => "B", // これに該当
_ => "C",
};
Console.WriteLine(grade); // B
値 switch { パターン => 結果, ... }がswitch式_は「どれにも当てはまらない場合」(ifの最後のelseに相当)>= 90のような範囲パターンも書ける
演習
int medal = 2;
// TODO: switch式で 1→"金"、2→"銀"、3→"銅"、それ以外→"圏外" を result に入れて出力してください
___
- 期待される出力:
銀
ヒント1を見る
medal switch { 1 => "金", ... } の形です
ヒント2を見る
string result = medal switch { 1 => "金", 2 => "銀", 3 => "銅", _ => "圏外" }; Console.WriteLine(result);
まとめ
switch式は1つの値を多くの候補と照合して値を返す_はデフォルト(その他すべて)>= 90のような範囲パターンも使える
次回: switchをさらに強力にする「パターンマッチング」です。