Golang如何写for循环_Go for迭代语法与常见用法

Go语言中唯一的循环结构是for循环,它通过初始化、条件判断和更新语句实现计数循环,如for i := 0; i

golang如何写for循环_go for迭代语法与常见用法

在Go语言中,for循环是唯一的循环控制结构,它功能强大且灵活,既可以实现传统的计数循环,也能用于迭代集合、字符串、通道等。Go没有while或do-while语法,所有循环逻辑都通过for来完成。

基本for循环语法

Go的for循环与C语言类似,包含初始化、条件判断和更新语句:

for 初始化; 条件; 更新 {    // 循环体}

例如,打印数字0到4:

for i := 0; i < 5; i++ {    fmt.Println(i)}

说明:i的作用域仅限于循环内部,这是Go推荐的写法。

立即学习“go语言免费学习笔记(深入)”;

类while的for循环

省略初始化和更新部分,只保留条件,就变成了while风格的循环:

n := 1for n < 100 {    n *= 2}fmt.Println(n) // 输出128

这种写法常用于条件不确定的场景,比如等待某个状态变化或读取输入。

无限循环与break/continue

省略所有条件,形成无限循环:

for {    if someCondition {        break // 跳出循环    }    if shouldSkip {        continue // 跳过本次    }    // 正常执行}

无限循环在服务器主循环、协程任务中很常见,配合break可实现灵活退出。

使用for range迭代数据结构

Go提供range关键字,用于遍历数组、切片、map、字符串和通道:

  • 遍历切片或数组
    arr := []int{10, 20, 30}for index, value := range arr {    fmt.Printf("索引:%d, 值:%dn", index, value)}      

遍历map

m := map[string]int{"a": 1, "b": 2}for key, value := range m {    fmt.Printf("键:%s, 值:%dn", key, value)}      

遍历字符串(按rune)

s := "你好"for i, r := range s {    fmt.Printf("位置%d, 字符:%cn", i, r)}      

注意:如果不需要索引或值,可用下划线_忽略:

for _, value := range arr {    fmt.Println(value)}  

嵌套for循环与标签跳转

Go支持循环嵌套。若需从内层循环跳出外层,可使用标签:

outer:for i := 0; i < 3; i++ {    for j := 0; j < 3; j++ {        if i == 1 && j == 1 {            break outer        }        fmt.Printf("(%d,%d) ", i, j)    }}// 输出: (0,0) (0,1) (0,2) (1,0)  

标签必须紧跟在循环前,配合break或continue使用。

基本上就这些。Go的for循环简洁而统一,掌握这几种模式足以应对大多数场景。不复杂但容易忽略的是range遍历时变量复用的问题——在goroutine中直接传循环变量要注意捕获副本。

以上就是Golang如何写for循环_Go for迭代语法与常见用法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1428410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月16日 22:28:21
下一篇 2025年12月16日 22:28:27

相关推荐

发表回复

登录后才能评论
关注微信