我的老师不允许我们使用像休息,转到,继续等等的东西 我决定在我的代码中添加一个switch语句,但我被卡住了,因为我能让它工作的唯一方法就是这样:
switch (exitValidation)
{
case 'y':
case 'Y': exit = false; break;
case 'n':
case 'N': Console.WriteLine("\nPlease Enter Valid values");
exit = false; break;
default: exit = true; break;
}
有没有办法在没有"中断的情况下使用开关;"? 此外,正在使用" break;"真的那么糟糕?
答案 0 :(得分:11)
一种解决方案是将交换机提取为一个方法,并使用其返回值:
public bool EvaluateSwitch(int exitValidation)
{
switch (exitValidation)
{
case 'y':
case 'Y': return false;
case 'n':
case 'N': Console.WriteLine("\nPlease Enter Valid values");
return false;
default: return true;
}
}
答案 1 :(得分:9)
首先,你的老师要么被误导,要么你听错了。在break
语句中使用switch
是完全可以接受的,实际上是this Wikipedia article,如果不存在则会导致编译错误。
但是,您可以使用switch语句中的return
获得相同的效果。但它当然会返回switch
所在的整个方法。
例如:
switch(exitValidation)
{
case 'y':
case 'Y':
return false;
case 'n':
case 'N':
return true;
}