跳到主要内容

break 和 continue

break 和 continue 如何使用, 二者有何区别?​

  • break: 结束最近的 for、switch 或 select;放在 switch 内时不会顺带退出外层 for;
  • continue: 跳过当前轮剩余循环体并进入下一轮,三段式 for 仍会先执行 post;
func main() {
for i := 0; i < 5; i++ {
if i == 2 {
continue // 跳过当前轮剩余代码
}
if i == 4 {
break // 终止当前 for
}
println(i)
}
}

标签如何使用, 如何跳出多层嵌套循环?​

  • label: 标记一条语句位置;
  • 使用场景: 退出多层嵌套循环;
func main() {
outer:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i*j > 2 {
break outer // 跳出 outer 标签对应的外层循环
}
}
}
}
  • 标签边界: 带标签的 break 必须指向包围当前位置的 for、switch 或 select;带标签的 continue 只能指向包围当前位置的 for;