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!")
}
}