break用于立即终止循环,continue跳过当前迭代;两者均支持标签实现多层循环控制,常用于优化遍历逻辑。

在Golang中,break 和 continue 是用于控制循环流程的关键字,它们能帮助我们更灵活地处理循环逻辑。
break:跳出循环
当程序执行到 break 语句时,会立即终止当前所在的循环(for、switch 或 select),并继续执行循环之后的代码。
常见用法:
- 在 for 循环中提前退出,比如找到目标值后不再继续遍历。
- 配合 switch 使用,跳出 case 分支(虽然在 switch 中 break 不是必须的,但在某些情况如避免 fallthrough 时有用)。
- 使用标签(label)跳出多层嵌套循环。
for i := 0; i < 10; i++ {
if i == 5 {
break // 当 i 等于 5 时,跳出循环
}
fmt.Println(i)
}
// 输出 0 到 4
continue:跳过当前迭代
continue 语句用于跳过当前循环的剩余部分,直接进入下一次迭代。
立即学习“go语言免费学习笔记(深入)”;
它不会终止整个循环,只是“跳过这一次”。
适用场景:
- 过滤特定条件的数据,比如只处理奇数或偶数。
- 跳过无效或不需要处理的元素。
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // 跳过偶数
}
fmt.Println(i)
}
// 输出 1, 3, 5, 7, 9
带标签的 break 和 continue
在嵌套循环中,可以用标签(label)来控制外层循环的 break 或 continue。
标签是一个标识符后跟冒号,放在循环前。
示例:跳出外层循环outer:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
break outer // 直接跳出外层循环
}
fmt.Println(i, j)
}
}
// 输出 (0,0) (0,1) (0,2) (1,0),然后结束
示例:continue 外层循环
outer:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
continue outer // 跳过外层 i=1 的所有情况
}
fmt.Println(i, j)
}
}
// 输出 (0,0)(0,1)(0,2)(2,0)(2,1)(2,2)
基本上就这些。break 用来退出,continue 用来跳过,结合标签可以精准控制多层循环。不复杂但容易忽略细节。










