← 返回首页
Go基础教程(十五)
发表时间:2022-12-07 15:34:26
循环语句

Go语言的循环结构有for和for range两种。

1.for循环

在Go语言 中,循环需要使用关键字for来完成,格式如下:

for 初始语句;条件表达式;结束语句 {
  循环体代码
}

实例:

计算1-100 的求和。

package main

import "fmt"

func main() {

    var sum int
    for i := 1; i <= 100; i++ {
        sum += i
    }
    fmt.Println("1-100的求和是:", sum)
}

运行结果:

1-100的求和是: 5050

2.for rang循环

Go语言中,我们还可以通过for range来遍历数组 、切片 、字符串 、map 以及通道(channel)。

for range遍历数组,实现数组元素求和。

package main

import "fmt"

func main() {

    var sum int
    arr := [5]int{12, 21, 3, 9, 42}
    for i, ele := range arr {
        sum += ele
        fmt.Printf("index:%d,element:%d\n", i, ele)
    }

    fmt.Println("数组元素的求和是:", sum)

}

运行结果:

index:0,element:12
index:1,element:21    
index:2,element:3     
index:3,element:9     
index:4,element:42    
数组元素的求和是: 87 

for range遍历map。

package main

import "fmt"

func main() {

    cityMap := map[string]string{"010": "北京", "021": "上海", "020": "广州"}
    for key, value := range cityMap {
        fmt.Printf("key:%s,value:%s\n", key, value)
    }
}

运行结果:

key:010,value:北京
key:021,value:上海 
key:020,value:广州 

for range遍历通道。

package main

import "fmt"
func main() {
    // 初始化一个通道
    c := make(chan int)
    // 启动一个 goroutine, 功能是往通道中推送数据 100、200、300,然后关闭通道
    go func() {
        c <- 100
        c <- 200
        c <- 300
        close(c)
    }()
    for value := range c {
        fmt.Println(value)
    }
}

运行结果:

100
200 
300

3.死循环

Go语言的死循环写法非常的简洁。

package main

import "fmt"

func main() {
    for {
        fmt.Println("helloworld!")
    }
}