在Go语言中,循环语句用于重复执行一段代码直到满足特定条件。Go语言提供了一种基本的循环结构——for
循环,以及一种特殊的循环形式——range
循环,用于遍历数组、切片、字符串、映射等集合类型。
1. 基本 for
循环
for
循环是最常用的循环结构,其语法如下:
for 初始化表达式; 条件表达式; 后操作表达式 {
// 循环体
}
- 初始化表达式:通常用于声明和初始化循环变量。
- 条件表达式:每次循环开始前都会评估这个布尔表达式,如果为真,则执行循环体;如果为假,则跳出循环。
- 后操作表达式:每次循环体执行完毕后执行的表达式,常用于更新循环变量。
示例:
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println("i =", i)
}
}
2. 无限循环
如果省略了for
循环的三个部分(初始化表达式、条件表达式、后操作表达式),则可以创建一个无限循环。通常需要在循环体内使用break
或return
来退出循环。
for {
// 循环体
}
示例:
package main
import "fmt"
func main() {
for {
fmt.Println("这是一个无限循环")
break // 使用 break 退出循环
}
}
3. range
循环
range
关键字可以用来遍历数组、切片、字符串、映射等。对于数组和切片,range
返回索引和值;对于映射,它返回键和对应的值;对于字符串,它返回索引和该索引处的rune(字符)。
for key, value := range collection {
// 循环体
}
示例:
package main
import "fmt"
func main() {
slice := []string{
"a", "b", "c"}
for index, value := range slice {
fmt.Printf("Index: %d, Value: %s\n", index, value)
}
mapExample := map[string]int{
"one": 1, "two": 2, "three": 3}
for key, value := range mapExample {
fmt.Printf("Key: %s, Value: %d\n", key, value)
}
}
4. 控制循环
break
:立即退出循环。continue
:跳过当前循环迭代的剩余部分,并继续下一次迭代。- 带标签的
break
和continue
:当存在嵌套循环时,可以通过给外层循环添加标签,然后用break
或continue
加上标签名来控制特定的循环。OuterLoop: for i := 0; i < 5; i++ { for j := 0; j < 5; j++ { if someCondition { break OuterLoop // 跳出最外层循环 } if anotherCondition { continue OuterLoop // 继续下一次最外层循环 } } }
以上就是Go语言中关于循环的基本知识。希望这些信息对你有帮助!如果有任何具体的问题或需要进一步的例子,请随时提问。