跳到主要内容

Go语言的break和continue

提示
  1. Go 中的 break 语句break 语句在 Go 循环中用于立即终止循环,无论循环条件是否满足。在嵌套循环中,break 仅终止最内层的循环。
  2. Go 中的 continue 语句continue 语句用于跳过当前循环的剩余部分,并立即开始下一次迭代。在嵌套循环中,continue 仅影响其所在的那层循环。
  3. break 和 continue 的使用场景:这两个语句通常与决策语句一起使用,以根据特定条件控制循环的执行流程。

Go break 语句

break 语句在遇到时会终止循环。例如,

for 初始化; 条件; 更新 {
break
}

在这里,不论 for 循环 的条件如何,break 语句都会终止循环。

Go break 语句的工作原理

break 语句与 Go 语言中的 for 循环结合工作原理示意图

示例:Go break 语句

package main
import "fmt"

func main() {
for i := 1 ; i <= 5 ; i++ {

// 当 i 等于 3 时终止循环
if i == 3 {
break
}

fmt.Println(i)
}
}

输出

1
2

在上述示例中,我们使用了 for 循环来打印 i 的值。注意 break 语句的使用,

if i == 3 {
break
}

这里,当 i 等于 3 时,break 语句终止了循环。因此,输出中不包括 2 之后的值。

break-nested-loop 嵌套循环中的 Go break 语句

当我们在嵌套循环中使用 break 语句时,它会终止内层循环。例如,

package main
import "fmt"

func main() {

// 外层 for 循环
for i := 1; i <= 3; i++ {

// 内层 for 循环
for j := 1; j <= 3; j++ {

// 仅终止内层 for 循环
if i==2 {
break
}

fmt.Println("i=", i, "j=", j)
}
}
}

输出

i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3

在上面的示例中,我们在内层 for 循环中使用了 break 语句。

if i == 2 {
break
}

这里,当 i 的值为 2 时,break 语句终止了内层的 for 循环。

因此,对于 i = 2 的值我们没有得到任何输出。

Go continue 语句

在 Go 中,continue 语句会跳过循环的当前迭代。它将程序的控制流传递到下一次迭代。例如,

for 初始化; 条件; 更新 {

if 条件 {
continue
}

}

这里,不论 for 循环 的条件如何,continue 语句都会跳过循环的当前迭代。

Go continue 语句的工作原理

continue 语句与 Go 语言中的 for 循环结合工作原理示意图

示例:Go continue 语句

package main
import "fmt"

func main() {
for i := 1 ; i <= 5 ; i++ {

// 当 i 等于 3 时跳过当前迭代
if i == 3 {
continue
}

fmt.Println(i)
}
}

输出

1
2
4
5

在上述示例中,我们使用了 for 循环来打印 i 的值。注意 continue 语句的使用,

if i == 3 {
continue
}

这里,当 i 等于 3 时,执行了 continue 语句。因此,它跳过了当前迭代并开始了下一次迭

代。3 这个值没有被打印到输出中。

嵌套循环中的 Go continue 语句

当我们在嵌套循环中使用 continue 语句时,它会跳过内层循环的当前迭代。例如,

package main
import "fmt"

func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {

// 仅跳过内层 for 循环
if j==2 {
continue
}

fmt.Println("i=", i, "j=",j )

}
}
}

输出

i= 1 j= 1
i= 1 j= 3
i= 2 j= 1
i= 2 j= 3
i= 3 j= 1
i= 3 j= 3

在上述示例中,我们在内层 for 循环中使用了 continue 语句。

if j == 2 {
continue
}

这里,当 j 的值为 2 时,执行了 continue 语句。因此,j = 2 的值从未在输出中显示。

注意: breakcontinue 语句几乎总是与决策语句一起使用。要了解更多关于决策的信息,请访问 Golang if else