介绍
在 Go 中使用 for 循环 可以让您以有效的方式自动化和重复任务。
学习如何控制循环的操作和流程将允许在您的程序中自定义逻辑。 您可以使用 break
和 continue
语句控制循环。
中断语句
在 Go 中,break
语句终止当前循环的执行。 break
几乎总是与 条件 if 语句 配对。
让我们看一个在 for
循环中使用 break
语句的示例:
break.go
package main import "fmt" func main() { for i := 0; i < 10; i++ { if i == 5 { fmt.Println("Breaking out of loop") break // break here } fmt.Println("The value of i is", i) } fmt.Println("Exiting program") }
这个小程序创建了一个 for
循环,该循环将在 i
小于 10
时进行迭代。
在 for
循环中,有一个 if
语句。 if
语句测试 i
的条件以查看值是否小于 5
。 如果 i
的值不等于 5
,则循环继续并打印出 i
的值。 如果i
的值等于5
,则循环执行break
语句,打印为Breaking out of loop
,并停止执行循环。 在程序结束时,我们打印出 Exiting program
来表示我们已经退出了循环。
当我们运行此代码时,我们的输出将如下所示:
OutputThe value of i is 0 The value of i is 1 The value of i is 2 The value of i is 3 The value of i is 4 Breaking out of loop Exiting program
这表明一旦整数 i
被评估为等于 5,循环就会中断,因为程序被告知使用 break
语句这样做。
嵌套循环
重要的是要记住 break
语句只会停止调用它的最内层循环的执行。 如果您有一组嵌套循环,如果需要,您将需要为每个循环中断。
嵌套.go
package main import "fmt" func main() { for outer := 0; outer < 5; outer++ { if outer == 3 { fmt.Println("Breaking out of outer loop") break // break here } fmt.Println("The value of outer is", outer) for inner := 0; inner < 5; inner++ { if inner == 2 { fmt.Println("Breaking out of inner loop") break // break here } fmt.Println("The value of inner is", inner) } } fmt.Println("Exiting program") }
在这个程序中,我们有两个循环。 虽然两个循环都迭代了 5 次,但每个循环都有一个条件 if
语句和一个 break
语句。 如果 outer
的值等于 3
,外部循环将中断。 如果 inner
的值为 2
,则内部循环将中断。
如果我们运行程序,我们可以看到输出:
OutputThe value of outer is 0 The value of inner is 0 The value of inner is 1 Breaking out of inner loop The value of outer is 1 The value of inner is 0 The value of inner is 1 Breaking out of inner loop The value of outer is 2 The value of inner is 0 The value of inner is 1 Breaking out of inner loop Breaking out of outer loop Exiting program
请注意,每次内循环中断时,外循环都不会中断。 这是因为 break
只会中断调用它的最内层循环。
我们已经看到使用 break
将如何停止循环的执行。 接下来,让我们看看如何继续循环的迭代。
继续声明
continue
语句用于跳过循环的剩余部分并返回到循环顶部并继续新的迭代。
与 break
语句一样,continue
语句通常与条件 if
语句一起使用。
使用与前面 Break Statement 部分相同的 for
循环程序,我们将使用 continue
语句而不是 break
语句:
继续。
package main import "fmt" func main() { for i := 0; i < 10; i++ { if i == 5 { fmt.Println("Continuing loop") continue // break here } fmt.Println("The value of i is", i) } fmt.Println("Exiting program") }
使用 continue
语句而不是 break
语句的区别在于,当变量 i
被评估为等效于 [X198X ]。 让我们看看我们的输出:
OutputThe value of i is 0 The value of i is 1 The value of i is 2 The value of i is 3 The value of i is 4 Continuing loop The value of i is 6 The value of i is 7 The value of i is 8 The value of i is 9 Exiting program
在这里,我们看到 The value of i is 5
行从未出现在输出中,但循环在该点之后继续打印数字 6-10 的行,然后离开循环。
您可以使用 continue
语句来避免深度嵌套的条件代码,或者通过消除您想要拒绝的频繁发生的情况来优化循环。
continue
语句使程序跳过循环中出现的某些因素,然后继续循环的其余部分。
结论
Go 中的 break
和 continue
语句将允许您在代码中更有效地使用 for
循环。