前回、「複数の条件」をやりましたが、複数の条件を作成する場合、switch文のほうが良いときがあります。

swich文

swich (式) {
     case 条件1:
          A処理;
          swich終了文;
     case 条件1:
          B処理;
          swich終了文;
     default:
          C処理;
          swich終了文;
}

さっそく、ソースプログラムを見てみましょう。

C#

public class bunki2{
    public static void Main(){
        string name="jiro";
        switch (name) {
            case "taro":
                System.Console.WriteLine("こんにちは、太郎さん");
                break;
            case "jiro":
                System.Console.WriteLine("やぁ、次郎くん");
                break;
            case "saburo":
                System.Console.WriteLine("Hi、" + name);
                break;
            default :
                System.Console.WriteLine("どなたかわかりません");
                break;
        }
    }
}

結果

やぁ、次郎くん

解説ですが、switchの後に条件となる値・式を記述します。switch内では、caseの後に、条件の結果とコロン(:)を記述します。その後の部分には、その結果に合った処理を記述していきます。命令が終われば、最後にbreakをいれてswitch文を終わります。

どの条件にも該当しない命令を書きたいときは、default :ラベルを使います。

name変数の値によって、プログラムが通る経路がif文のように分岐できたと思います。


フォールスルー

スポンサードリンク

switch文はC#とVB.NETで構文の書き方に違いがあります。

C#では、そのcaseの範囲内の処理が終わったあとにbreak(ジャンプ)の記述を忘れると、次のcaseラベルが実行されてしまいます。これをフォールスルーをいい、C/C++の言語仕様を引き継いでいるからです。

paiza.ioでは、breakをわすれると「Control cannot fall through from one case label `case "xxx":' to another」のようにコンパイルエラーとなるので実行できませんが・・・。


次回は、繰り返し文を解説します。