Go编程语言中的for循环语句有多种形式,可以满足不同的编程需求。
基本形式
最基本的for循环语句由三个部分组成:
代码语言:javascript复制for initialization; condition; post {
// 循环体
}
- initialization:循环前执行的初始化语句,可选。
- condition:循环条件表达式,每次循环前都会计算。
- post:每次循环后执行的语句,可选。
其中,初始化语句只在循环开始前执行一次,循环条件表达式每次循环前都会计算,如果条件表达式的值为false,则循环结束;每次循环后执行post语句。
省略初始化语句和post语句
在for循环中,初始化语句和post语句是可选的,可以省略,例如:
代码语言:javascript复制sum := 0
for i := 1; i <= 100; {
sum = i
i
}
省略条件表达式
在循环中,条件表达式是可以省略的,这时相当于无限循环。例如:
代码语言:javascript复制for {
// 无限循环
}
循环遍历数组或切片
在Go中,使用range关键字可以循环遍历数组或切片中的元素。例如:
代码语言:javascript复制arr := []int{1, 2, 3, 4}
for i, v := range arr {
fmt.Println(i, v)
}
循环遍历映射
使用range关键字也可以循环遍历映射中的键值对。例如:
代码语言:javascript复制m := map[string]int{"a": 1, "b": 2, "c": 3}
for k, v := range m {
fmt.Println(k, v)
}
循环遍历字符串
在Go中,使用range关键字也可以循环遍历字符串中的字符。例如:
代码语言:javascript复制s := "hello, world!"
for i, c := range s {
fmt.Printf("index: %d, character: %cn", i, c)
}
循环中使用标签
在Go中,可以在循环语句前面加上一个标签,用于在循环嵌套时跳出指定的循环。例如:
代码语言:javascript复制outer:
for i := 0; i < 3; i {
for j := 0; j < 3; j {
if i*j > 2 {
break outer
}
fmt.Println(i, j)
}
}
循环中使用continue
在循环中,可以使用continue语句跳过本次循环。例如:
代码语言:javascript复制for i := 0; i < 10; i {
if i%2 == 0 {
continue
}
fmt.Println(i)
}