当我处于C#中的switch-case时,如何打破“while”循环?
c#
while如果n等于 3,我想打破这个循环,但我该怎么做?
n = 0;
while(true){
switch (n){
case 3:
break;
default:
break;
}
}
回答
您无法摆脱嵌套块。您必须使用不同的条件控制结构。
例如,您可以在 while 循环中使用布尔值:
while(true) {
var breakWhile = false;
switch(n) {
case 3:
breakWhile = true;
break;
default:
break;
}
if (breakWhile) {
break;
}
}
这是一个相当人为的例子,展示了您将如何在一般意义上做到这一点。
在这个简单的示例中,您可以将代码简化为:
while (n != 3) {
}
但我认为您对打破嵌套结构的一般方法感兴趣。
另一个不赞成实践的方法是使用goto 语句。您通常应该避免这种情况,但为了完整起见,在这里显示,因为顺便说一句,摆脱深层嵌套循环是该goto语句为数不多的可接受用法之一。
从文档:
goto 语句对于摆脱深度嵌套的循环也很有用。
while (true) {
switch(n) {
case 3:
goto outer_scope;
default:
break;
}
}
outer_scope:
// ...