第14章 switch文


switch文は複数分岐に使います。C/C++のswitch文にかなり似ています。



switch文は次のような形になります。

switch (式)
{
    case 値1:
        ...
        break;
    case 値2:
        ...
        break;
    default:
        ...
        break;
}
式は、整数型か文字列型(string型)です。これが、値nに相当すればcase 値n:のところの文が実行されます。そして、break文に行き当たり、switch文の{}から抜けます。caseのどれにも当てはまらない時はdefault:のところが実行されます。

また、次のような形もあります。

switch (式)
{
    case 値1:
    case 値2:
        ...
        break;
    ...
}
式の値が値1が値2であれば、次の...が実行されます。

しかし、次のような形は認められません(C/C++ではOK)。

//エラー!!
switch (式)
{
    case 値1:
        ...(1)
    case 値2:
        ...(2)
        break;
    ...
}
式の値が値1なら、...(1)が実行され、続いて...(2)を実行しようとする時、C/C++ではこのように書きますが、C#では認められていません。

では、前章のプログラムbool02.csをswitch文を使って書き直してみましょう。

// switch01.cs

using System;

class switch01
{
    public static void Main()
    {
        string[] menu = new string[]{"1.ファイル",
            "2.編集", "3.表示"};
        string format = "「{0}」が選択されました";

        Console.WriteLine("*** Menu ***");
        Console.WriteLine(menu[0]);
        Console.WriteLine(menu[1]);
        Console.WriteLine(menu[2]);
        Console.WriteLine("************");
        Console.Write("\n");

        Console.Write("選択--- ");
        string sel = Console.ReadLine();

        switch (sel)
        {
            case "1":
                Console.WriteLine(format, menu[0]);
                break;
            case "2":
                Console.WriteLine(format, menu[1]);
                break;
            case "3":
                Console.WriteLine(format, menu[2]);
                break;
            default:
                Console.WriteLine("選択が正しくありません");
                break;
        }
    }
}
ずいぶん、すっきりしてきましたね。
[C# Index] [総合Index] [Previous Chapter] [Next Chapter]

Update 21/Aug/2006 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。