Go语言仅提供for一种循环语句,包含三段式、条件式和无限循环式三种形式;三段式for语法为“for 初始化; 条件表达式; 后置操作 { ... }”,初始化执行一次,条件在每次循环前判断,后置操作在循环体后执行。

Go语言中只有for一种循环语句,没有while或do-while,但通过灵活写法可以实现所有循环逻辑。核心在于理解它的三种形式:传统三段式、条件式、无限循环式。
这是最接近其他语言for的写法,常用于已知迭代次数的场景,比如遍历数组索引或计数。
语法结构:for 初始化; 条件表达式; 后置操作 { ... }
说明:
- 初始化只执行一次,通常声明并赋值循环变量;
- 每次循环开始前判断条件,为false则退出;
- 后置操作在每次循环体执行完后运行,常用于递增/递减。
示例:
立即学习“go语言免费学习笔记(深入)”;
for i := 0; i < 5; i++ {<br>
fmt.Println(i)<br>
}注意:
- 变量i作用域仅限于该for块内;
- 不支持逗号分隔多个初始化或后置语句(如i,j := 0,0需提前声明);
- 条件部分不能加括号,写成for (i 会报错。
省略初始化和后置操作,只保留条件表达式,适合依赖外部状态或复杂退出条件的场景。
语法:for 条件 { ... }
常见用法:
- 模拟while (condition)逻辑;
- 配合break或return提前退出;
- 处理IO读取、状态轮询等不确定次数的操作。
示例:
立即学习“go语言免费学习笔记(深入)”;
sum := 0<br>
n := 1<br>
for sum < 100 {<br>
sum += n<br>
n++<br>
}省略全部三个部分,构成死循环,必须靠break、return或os.Exit()等显式跳出,否则程序卡住。
适用场景:
- 服务器主循环(如HTTP服务监听);
- 游戏主帧循环;
- 需要持续监听信号或通道的后台协程。
示例:
立即学习“go语言免费学习笔记(深入)”;
for {<br>
select {<br>
case msg := <-ch:<br>
handle(msg)<br>
case <-done:<br>
return<br>
}<br>
}提示:
- 别忘了在循环体内提供退出路径,否则编译虽通过,运行会阻塞;
- 配合select使用时,default分支可避免阻塞,实现非阻塞轮询。
for ... range是Go特有语法,用于安全、简洁地遍历数组、切片、字符串、map、channel。它自动处理边界和类型,比手动索引更推荐。
基本形式:for key, value := range collection { ... }
要点:
- map遍历时key/value顺序不保证;
- 切片/数组遍历时key是索引,value是元素副本(修改value不影响原数据);
- 如果不需要某个值,用下划线_忽略,避免编译错误(如for _, v := range s);
- 字符串按rune遍历(支持Unicode),不是字节。
示例:
立即学习“go语言免费学习笔记(深入)”;
nums := []int{10, 20, 30}<br>
for i, v := range nums {<br>
fmt.Printf("index %d: %d\n", i, v)<br>
}基本上就这些。Go的for看似简单,但把“少即是多”体现得很彻底——掌握这几种写法,就能覆盖全部循环需求,还不容易出错。
以上就是如何编写Golang循环语句for_Golang for循环使用说明的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号