在Go语言中,循环是通过for关键字来实现的。Go语言提供了三种基本的循环方式:for循环、range循环和for...range循环。
for循环:
代码语言:javascript复制for 初始化语句; 循环条件; 循环后执行语句 {
// 循环体代码
}
初始化语句用于初始化循环变量;循环条件为真时执行循环体代码;循环后执行语句在每次循环结束后执行。例如:
代码语言:javascript复制for i := 0; i < 5; i {
fmt.Println(i)
}
以上代码会输出0到4的数字。
range循环:
range循环用于遍历数组、切片、字符串、映射等数据结构的元素。
代码语言:javascript复制for index, value := range collection {
// 循环体代码
}
index是当前元素的索引,value是当前元素的值。例如:
代码语言:javascript复制numbers := []int{1, 2, 3, 4, 5}
for index, value := range numbers {
fmt.Printf("Index: %d, Value: %dn", index, value)
}
以上代码会输出数组numbers中每个元素的索引和值。
for...range循环:
for...range循环可以用于遍历通道(channel)中的值,直到通道关闭。
代码语言:javascript复制for value := range channel {
// 循环体代码
}
value是从通道接收到的值。例如:
代码语言:javascript复制ch := make(chan int)
go func() {
ch <- 1
ch <- 2
close(ch)
}()
for value := range ch {
fmt.Println(value)
}
以上代码会输出通道ch中的值1和2。
除了上述基本的循环方式外,Go语言还提供了break和continue语句,用于在循环中控制流程的跳转。break语句用于终止当前循环,跳出循环体;continue语句用于跳过当前循环的剩余代码,进入下一次循环迭代。