私は Visual Studio C# コンソールでコース用のテキスト アドベンチャーを書いていますが、goto ケースが非常に便利であるため、一連の if-else の代わりに switch ステートメントを使用することにしました (これまでのところ、非常にうまく機能しています)。スイッチ自体の各ケースは定数でなければならないことは知っていますが、これが goto ケースの使用にも拡張されるかどうか疑問に思っています。たとえば、私は持っています:
switch (location)
{
case 1:
break;
case 2:
break;
case 3:
break;
//I have 10 cases, each representing a location such as "Orc Cave", I just cut it down for brevity
default:
break;
}
整数変数を入力してからその整数に移動できるようにしたいのですが、それを達成するには次のようにします。
string travel2 = Console.ReadLine();//inputs a integer representing each location
int travel2A = Convert.ToInt32(travel2);
if (1<=travel2A && travel2A<=10)
{
goto case(travel2A);
}
else{
goto case(2);//current location
}
すべて正常に動作しますが、ケース (travel2A) に下線を引く「定数値が期待されます」という警告があります。goto case 入力を微調整して変数にすることは可能ですか、それとも switch ステートメントの単なる制限ですか? 後者の場合は、一連の if-else を実行できますが、変数を代入する方が便利だと思います。これに関するヘルプは大歓迎です! ありがとうございました!