C# 我可以不中断地使用switch语句吗;?

C# 我可以不中断地使用switch语句吗;?,c#,switch-statement,break,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 =

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

首先,你的老师不是误传了,就是听错了。在
switch
语句中使用
break
是完全可以接受的,事实上,如果它不存在,将导致编译错误

但是,您可以从switch语句中使用
return
,以获得大致相同的效果。当然,它将返回
开关
所在的整个方法

例如:

switch(exitValidation)
{
    case 'y':
    case 'Y':
        return false;
    case 'n':
    case 'N':
        return true;
}

解决方案是将开关提取到方法中并使用其返回值:

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

开关中的
中断
是必需的。你的老师可能不喜欢打破循环。啊,这就解释了为什么我在搜索了将近一个小时后,找不到任何其他方法。谢谢你的快速回答。@nrodic不,不是。欲了解更多信息,请阅读。根据您想要处理的场景,一个或多个案例没有中断是完全可以接受的。为什么要切换到这么简单的事情?使用此条件
if(exitValidation.ToLower()='y')exit=false
,对
n
也使用此条件,谢谢你指出。我之前一直尝试这样做,但出于某种原因,我在“return”中不断出现错误即使在创建了一个新方法之后,该方法也需要指定一个
bool
返回值,而不是
void
;在switch语句中,他的回答是“总有办法”@BrianNaranjo我想这就是“办法”。这似乎仍然是一个不必要的限制,但如果他是这么说的…@BrianNaranjo,正如有人在另一篇评论中建议的那样,你确定他不是要你使用
if
语句吗?