我可以不间断地使用switch语句吗?

时间:2016-03-05 08:55:54

标签: c# switch-statement break

我的老师不允许我们使用像休息,转到,继续等等的东西 我决定在我的代码中添加一个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;"真的那么糟糕?

2 个答案:

答案 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;
}