go语言中for循环是唯一的循环结构,支持多种写法。1. 传统三段式:如for i := 0; i < 5; i++,包含初始化、条件判断和迭代语句,适用于已知循环次数的场景。
Go语言中的for
循环是唯一的一种循环结构,但它非常灵活,支持多种写法来适应不同的使用场景。下面介绍几种常见的for
循环写法。
1. 类似C语言的传统三段式for循环
这是最常见的一种写法,包含初始化、条件判断和迭代语句。
for i := 0; i < 5; i++ { fmt.Println(i) }
说明:
- 第一部分
i := 0
是初始化语句,只执行一次。 - 第二部分
i 是循环条件,每次循环前都会判断。
- 第三部分
i++
是循环后的操作,每轮结束后执行。
2. 只有循环条件的for循环(类似while)
Go中没有while
关键字,但可以用for
实现相同功能。
立即学习“go语言免费学习笔记(深入)”;
i := 0 for i < 5 { fmt.Println(i) i++ }
这种写法省略了初始化和递增部分,只保留条件表达式,行为等同于while (i 。
3. 无限循环(死循环)
不设置任何条件,循环会一直执行,常用于后台服务或轮询。
for { fmt.Println("持续运行...") time.Sleep(time.Second) }
需要用break
或return
来退出循环。
4. 遍历数组、切片、字符串、映射和通道(range遍历)
使用for
0关键字可以方便地遍历集合类型。
遍历切片:
s := []string{"a", "b", "c"} for i, v := range s { fmt.Println(i, v) }
遍历map:
m := map[string]int{"a": 1, "b": 2} for k, v := range m { fmt.Println(k, v) }
注意:
- 如果只想获取索引(或键),可以写成
for
1。 - 如果只想获取值,可以用下划线忽略索引:
for
2。
5. 控制循环的跳转语句
在for循环中可以使用break
和for
4控制流程。
for i := 0; i < 10; i++ { if i == 3 { continue // 跳过本次循环 } if i == 8 { break // 终止整个循环 } fmt.Println(i) }
输出结果为:for
5。
基本上就这些。Golang的for循环虽然形式多样,但核心逻辑清晰,掌握这几种写法基本能应对大多数场景。关键是根据实际需求选择合适的语法结构。不复杂但容易忽略细节,比如变量作用域和range返回值的处理。
golang go c语言 go语言 作用域 c语言 golang for while break continue 字符串 变量作用域 循环 Go语言 切片 map 作用域