在Go中使用循环时使用中断和继续语句

在Go中使用** for loops **可以让您以有效的方式自动执行和重复任务。学习如何控制循环的操作和流程将允许程序中的自定义逻辑。您可以使用`break`和`continue`语句控制循环。

介绍

在Go中使用for循环允许您以有效的方式自动执行和重复任务。

学习如何控制循环的操作和流程将允许程序中的自定义逻辑。 您可以使用breakcontinue语句控制循环。

休息声明

在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 ,表示我们退出了循环。

当我们运行此代码时,我们的输出将如下:

The 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语句只会停止执行它调用的最内层循环。如果你有一组嵌套循环,如果需要,你需要为每个循环中断。

nested.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次时,每个循环都有一个带有break语句的条件if语句。 如果outer的值等于3则外部循环将中断。 如果inner值为2则内部循环将中断。

如果我们运行程序,我们可以看到输出:

The 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语句:

continue.go
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被评估为等效于5时,尽管中断,我们的代码仍将继续。 让我们来看看我们的输出:

The 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输出中The value of i is 5 ,但是在该点之后循环继续在离开循环之前打印数字6-10的行。

您可以使用continue语句来避免深层嵌套的条件代码,或者通过消除您要拒绝的常见情况来优化循环。

continue语句导致程序跳过循环中出现的某些因子,然后继续循环的其余部分。

结论

Go中的breakcontinue语句将允许您在代码中更有效地使用for循环。