我正在为 Visual Studio C# 控制台中的一门课程编写文本冒险,并决定使用 switch 语句而不是 if-else 链,因为 goto 案例非常有用(到目前为止它工作得非常好)。我知道开关本身中的每个案例都必须是一个常数,但我想知道这是否也扩展到使用 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,但在我看来,输入变量更方便。非常感谢您对此的任何帮助!谢谢!