小编典典

break 语句是否从 switch/select 中断?

all

我知道switch/select语句在每种情况下都会自动中断。我想知道,在以下代码中:

for {
    switch sometest() {
    case 0:
        dosomething()
    case 1:
        break
    default:
        dosomethingelse()
    }
}

break语句是退出for循环还是仅退出switch块?


阅读 135

收藏
2022-07-30

共1个答案

小编典典

Break 语句,Go 编程语言规范。

“break”语句终止最里面的“for”、“switch”或“select”语句的执行。

BreakStmt = "break" [ Label ] .

如果有标签,它必须是封闭的“for”、“switch”或“select”语句的标签,即执行终止的标签(搂For语句、搂Switch语句、搂Select语句)。

L:
  for i < n {
      switch i {
      case 5:
          break L
      }
  }

因此,break您示例中的语句终止了switch语句,即“最内层”语句。

2022-07-30