C# 我可以不中断地使用switch语句吗;?
我的老师不允许我们使用诸如“休息”、“转到”、“继续”等东西 我决定在我的代码中添加一个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 (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
语句吗?