登录
首页 >  Golang >  Go教程

Golangfor循环技巧与迭代方法

时间:2026-04-20 10:20:45 311浏览 收藏

Go语言仅提供for这一种循环结构,却凭借其高度灵活的语法设计覆盖了传统计数循环、while风格条件循环、无限循环、多种数据结构遍历(通过range)、嵌套跳转等全部场景;从基础的`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 

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

类while的for循环

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

n := 1
for n 

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

无限循环与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, 值:%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 

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

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

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Golangfor循环技巧与迭代方法》文章吧,也可关注golang学习网公众号了解相关技术文章。

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>