在Go语言中,continue
语句用于跳过当前循环的剩余部分,并立即开始下一次循环迭代。这在处理循环时非常有用,特别是当你想要根据某个条件提前结束当前迭代而不需要完全退出整个循环。
使用场景
- 过滤特定条件:当满足某些条件时,你可能不想执行循环体内的其余代码,而是想直接跳到下一次迭代。
- 优化性能:在一些情况下,使用
continue
可以避免不必要的计算或操作,从而提高程序的效率。
基本语法
continue
语句的基本形式非常简单,它不带任何参数,只是单独一行代码:
for 初始化; 条件; 更新 {
if 满足某个条件 {
continue
}
// 其他代码
}
示例
下面是一个简单的例子,展示了如何在 for
循环中使用 continue
语句来跳过偶数并打印奇数:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // 如果i是偶数,则跳过本次循环的剩余部分
}
fmt.Println(i) // 打印奇数
}
}
在这个例子中,当 i
是偶数时(即 i % 2 == 0
),continue
语句会被执行,导致循环立即跳转到下一次迭代,因此不会执行 fmt.Println(i)
这一行代码。结果,只有奇数值的 i
被打印出来。
注意事项
continue
语句只能用在循环体内,不能单独使用。- 在嵌套循环中,
continue
仅影响其所在的最内层循环。 - 如果需要从外层循环中继续,可以使用标签(label)配合
continue
语句实现。
标签与 continue
在更复杂的循环结构中,如果你需要从内层循环跳出到外层循环的下一个迭代,你可以给外层循环添加一个标签,然后在内层循环中使用带有该标签的 continue
语句。例如:
package main
import "fmt"
func main() {
OuterLoop:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if j == 1 {
continue OuterLoop // 当j为1时,跳过外层循环的当前迭代
}
fmt.Printf("i: %d, j: %d\n", i, j)
}
}
}
在这个例子中,当 j
的值为1时,continue OuterLoop
会使得控制流跳过当前外层循环的剩余部分,直接进入下一次外层循环的迭代。