在Golang中使用for语句创建循环

Gofor循环教程展示了如何在Golang中使用for语句创建循环。Go中有三种形式的for循环。

寻找声明

for语句指定块的重复执行。for语句有三种形式:经典的C风格for语句、单一条件for语句和带有范围子句。

$ go version
go version go1.18.1 linux/amd64

我们使用Go版本1.18。

Gofor循环示例

以下示例显示了Golang中可用的表单。

package main

import "fmt"

func main() {

    sum := 0

    for i := 0; i < 10; i++ {
    
        sum += i
    }
    
    fmt.Println(sum)
}

这是经典的C风格for语句。该程序计算值1..9的总和。

for i := 0; i < 10; i++ {

    sum += i
}

for语句由三部分组成:初始化、条件和自增。初始化部分只执行一次。当条件为真时执行for语句的主体。如果条件返回false,则for循环终止。块中的语句执行后,for循环切换到第三部分,计数器递增。循环继续,直到条件不再为真。请注意,是否可以创建无限循环。

$ go run for_loop.go 
45

值1..9的总和是45。

package main

import "fmt"

func main() {

    sum := 0
    i := 9

    for i > 0 {
        
        sum += i
        i--
    }

    fmt.Println(sum)
}

这是Go中语句的单一条件。它在功能上等同于Cwhile循环。我们对值9..1求和。在此示例中,我们定义了i计数器变量。

$ go run for_loop2.go 
45

下一个示例将range子句与for语句一起使用。

package main

import "fmt"

func main() {
    
    nums := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}

    sum := 0
    
    for _, num := range nums {
    
        sum += num
    }

    fmt.Println(sum)
}

我们计算整数值的总和。

nums := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}

我们定义了一个值数组。

for _, num := range nums {

    sum += num
}

我们使用range子句遍历数组。range在每次迭代中返回索引和值。由于我们不使用索引,因此我们指定了丢弃_运算符。(TheGolang文档称其为空白标识符。)

在下一个例子中,我们使用索引值。

package main 

import "fmt"

func main() {

    words := []string{"sky", "cup", "cloud", "news", "water"}

    for idx, word := range words {

        fmt.Printf("%s has index %d\n", word, idx)
    }
}

我们迭代一段单词。我们打印单词及其索引。

$ go run for_loop4.go 
sky has index 0
cup has index 1
cloud has index 2
news has index 3
water has index 4

在下一个示例中,我们创建一个无限循环。

package main

import (
    "fmt"
    "math/rand"
    "time"
)

func init() {

    rand.Seed(time.Now().UnixNano())
}

func main() {
    
    for {
        
        r := rand.Intn(30)
        
        fmt.Printf("%d ", r)

        if r == 22 {
            break;
        }
    }
}

该示例在无限循环中随机打印<0,30)中的值。当遇到值22时,我们使用break关键字终止循环。

在本教程中,我们介绍了Golang中的for循环。

列出所有Go教程。

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏