首页 > 后端开发 > Golang > 正文

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

P粉602998670
发布: 2025-11-27 11:31:02
原创
774人浏览过
Go语言中唯一的循环结构是for循环,它通过初始化、条件判断和更新语句实现计数循环,如for i := 0; i < 5; i++ { println(i) }可输出0到4。

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 := 1
for n < 100 {
    n *= 2
}
fmt.Println(n) // 输出128
登录后复制

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

无限循环与break/continue

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

Typewise.app
Typewise.app

面向客户服务和销售团队的AI写作解决方案。

Typewise.app 39
查看详情 Typewise.app
for {
    if someCondition {
        break // 跳出循环
    }
    if shouldSkip {
        continue // 跳过本次
    }
    // 正常执行
}
</font>
</p>
<p>无限循环在服务器主循环、协程任务中很常见,配合break可实现灵活退出。</p>

<H3>使用for range迭代数据结构</H3>
<p>Go提供range关键字,用于遍历数组、切片、map、字符串和通道:</p>
<ul>
  <li><strong>遍历切片或数组</strong>:
    <font face="Courier New">
      <pre class="brush:php;toolbar:false;">
arr := []int{10, 20, 30}
for index, value := range arr {
    fmt.Printf("索引:%d, 值:%d\n", index, value)
}
      
登录后复制
  • 遍历map
    m := map[string]int{"a": 1, "b": 2}
    for key, value := range m {
        fmt.Printf("键:%s, 值:%d\n", key, value)
    }
          
    登录后复制
  • 遍历字符串(按rune)
    s := "你好"
    for i, r := range s {
        fmt.Printf("位置%d, 字符:%c\n", 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迭代语法与常见用法的详细内容,更多请关注php中文网其它相关文章!

    最佳 Windows 性能的顶级免费优化软件
    最佳 Windows 性能的顶级免费优化软件

    每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号