Menu
Coddy logo textTech

switch 文

CoddyのC#ジャーニー「基礎」セクションの一部 — レッスン 27/69。

switch文は、多方向のif文のようなものです。単一の条件を評価する代わりに、変数の値を複数のケースと照らし合わせてチェックし、一致するケースに関連付けられたコードを実行します。

switch文の基本的な構造は次のとおりです。

switch (variable) {
    case value1:
        // variableがvalue1と等しい場合に実行されるコード
        break;
    case value2:
        // variableがvalue2と等しい場合に実行されるコード
        break;
    // ... その他のケース
    default:
        // どのケースにも一致しない場合に実行されるコード
        break;
}
  • switchキーワードの後には、テストしたい変数を括弧内に記述します。
  • caseは、変数の取り得る値を表します。
  • 変数がそのケースの値と一致する場合、各case内のコードが実行されます。
  • break文は非常に重要です。これは、caseが実行された後にswitchを抜けるためのものです。これがないと、実行は次のcaseへ「フォールスルー(そのまま進む)」してしまいます。
  • defaultケースは任意であり、他のどのケースも一致しない場合に実行されます。

以下に例を示します:

int day = 3;
string dayName;

switch (day) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    // ... 他の曜日のケース
    default:
        dayName = "Invalid day";
        break;
}

複数のケースを1つにまとめることもできます:

int day = 3;
string dayName;

switch (day) {
    case 1:
    case 2:
    case 3:
        dayName = "Start of week";
        break;
    // ... 他の曜日のケース
    default:
        dayName = "Invalid day";
        break;
}
challenge icon

チャレンジ

初心者

月の番号(1月なら 1、2月なら 2 など)を受け取り、それが属する季節を表示するプログラムを作成してください。ロジックには switch 文を使用してください。

季節とそれに対応する月は以下の通りです:

  • Winter: 12月 (12), 1月 (1), 2月 (2)
  • Spring: 3月 (3), 4月 (4), 5月 (5)
  • Summer: 6月 (6), 7月 (7), 8月 (8)
  • Autumn: 9月 (9), 10月 (10), 11月 (11)

チートシート

switch文は、変数を複数のケースと照合する多方向の条件分岐です:

switch (variable) {
    case value1:
        // variableがvalue1と等しい場合に実行されるコード
        break;
    case value2:
        // variableがvalue2と等しい場合に実行されるコード
        break;
    default:
        // どのケースにも一致しない場合に実行されるコード
        break;
}

主な構成要素:

  • case: 一致する可能性のある値を表します
  • break: ケースの実行後にswitchを抜けます(フォールスルーを防止します)
  • default: 他のどのケースにも一致しない場合に実行されるオプションのケース

複数のケースを組み合わせることもできます:

switch (day) {
    case 1:
    case 2:
    case 3:
        dayName = "Start of week";
        break;
    default:
        dayName = "Invalid day";
        break;
}

自分で試してみよう

using System;

public class Program {
    public static void Main(string[] args) {
        int month = int.Parse(Console.ReadLine());
        string season = "";
        
        // 以下にコードを記述してください
        
        
        Console.WriteLine(season);
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン