Golang 如何使用for和foreach循环
在Golang中,只有一个循环结构,那就是 for 循环。Golang中的for循环有三个组成部分,它们必须用分号(;)隔开,这些部分包括:
- 初始化语句 :在第一次迭代之前执行,例如 i := 0
- 条件表达式 :在每次迭代之前执行,例如 i < 5
- 后置语句 :在每次迭代的结尾执行,例如 i++
在定义块时,不需要使用 括号 来包含这三个部分,但必须使用 大括号 。
for i := 0 ; i < 5 ; i++{
// statements to execute......
}
初始化和后置语句是可选的。
i := 0
for ; i < 5;{
i++
}
在Golang中,可以将 for 循环作为 while 循环使用,只需省略所有分号。
**i := 0**
for **i < 5 **{
**i++**
}
无限循环: 如果没有条件语句,循环会变成一个无限循环。
**for** {
}
示例:
package main
import "fmt"
// 打印数字0到9并打印0到9的总和的函数
func main() {
// 变量用于存储总和
sum := 0
// 这是一个从0到9运行的for循环
for i := 0; i < 10; i++ {
// 打印变量i的值
fmt.Printf("%d ", i)
// 计算总和
sum += i
}
fmt.Printf("\nsum = %d", sum)
}
输出:
0 1 2 3 4 5 6 7 8 9
sum = 45
在Golang中没有 foreach 循环,而是可以使用 for 循环作为“ foreach ”。有一个关键字 range ,您可以将 for 和 range 组合在一起,并选择在循环中使用 key 或 value 。
语法:
for <key>, <value> := range <container>{
}
这里,
- key 和 value :可以是您想要选择的任何变量。
- container :可以是任何变量,例如数组,列表,映射等。
示例1:
package main
import "fmt"
// 用于展示如何将for和range结合使用的驱动程序函数
func main() {
// 在这里,我们使用了一个将整数映射为字符串的映射
mapp := map[int]string{1: "one", 2: "two", 3: "three"}
// integ充当mapp的key
// spell充当mapp的值,映射到integ
for integ, spell := range mapp {
// 使用integ和spell作为映射的键和值
fmt.Println(integ, " = ", spell)
}
}
输出:
1 = one
2 = two
3 = three
示例2:
package main
import "fmt"
// 演示如何同时使用for和range
func main() {
// 声明一个整型数组
arra := []int{1, 2, 3, 4}
// 遍历数组
for index, itr := range arra {
// 在for与range一起使用时,
// key或value变量取决于容器类型,
// 如果是数组或列表,则key表示索引……
fmt.Print(index, " : ", itr, "\n")
}
// 如果在for循环中只使用一个变量,
// 则默认情况下它将表示容器中的值。
for itr := range arra {
fmt.Print(it, " ")
}
}
输出:
0 : 1
1 : 2
2 : 3
3 : 4
1 2 3 4