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; } } }ずいぶん、すっきりしてきましたね。
Update 21/Aug/2006 By Y.Kumei