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