当我处于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:
  // ...


以上是当我处于C#中的switch-case时,如何打破“while”循环?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>