全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-14 6 分钟 ✍️ juanwangdev

Go循环语句for

Go只有for循环关键字,但支持多种循环形式,语法灵活。

for基本语法

标准三段式

Go
// 初始化; 条件; 后置语句
for i := 0; i < 10; i++ {
    fmt.Println(i)
}

// 输出:0, 1, 2, ..., 9

各部分说明

Go
for 初始化; 条件; 后置 {
    // 循环体
}

// 初始化:循环开始前执行一次
// 条件:每次迭代前检查,false时结束
// 后置:每次迭代后执行

省略部分

Go
// 省略初始化和后置(类似while)
i := 0
for i < 10 {
    fmt.Println(i)
    i++
}

// 省略条件(无限循环)
for {
    fmt.Println("无限循环")
    break  // 需要break退出
}

while循环模拟

类似while

Go
// Go没有while关键字
// 用for模拟

// while(condition)形式
i := 0
for i < 10 {
    fmt.Println(i)
    i++
}

// do-while形式
i := 0
for {
    fmt.Println(i)
    i++
    if i >= 10 {
        break
    }
}

无限循环

无条件for

Go
// 无限循环
for {
    // 循环体
    // 必须有break或return退出
}

// 示例:服务监听
for {
    conn := accept()
    handle(conn)
}

带退出条件

Go
for {
    data := read()
    if data == nil {
        break  // 退出循环
    }
    process(data)
}

循环控制

break退出

Go
for i := 0; i < 10; i++ {
    if i == 5 {
        break  // 提前退出
    }
    fmt.Println(i)
}
// 输出:0, 1, 2, 3, 4

continue跳过

Go
for i := 0; i < 10; i++ {
    if i % 2 == 0 {
        continue  // 跳过本次迭代
    }
    fmt.Println(i)
}
// 输出:1, 3, 5, 7, 9

for循环变体

形式语法说明
标准for i:=0; i<n; i++三段式
whilefor condition {}只有条件
无限for {}无条件
rangefor i, v := range seq集合遍历

循环标签

标签与break

Go
outer:
for i := 0; i < 10; i++ {
    for j := 0; j < 10; j++ {
        if i == 5 && j == 5 {
            break outer  // 跳出外层循环
        }
    }
}

标签与continue

Go
outer:
for i := 0; i < 5; i++ {
    for j := 0; j < 5; j++ {
        if j == 2 {
            continue outer  // 跳到外层循环下一次
        }
    }
}

for使用示例

Go
func main() {
    // 标准:计数循环
    for i := 0; i < 10; i++ {
        fmt.Println(i)
    }

    // while模拟:条件循环
    n := 1
    for n < 100 {
        n *= 2
    }
    fmt.Println(n)  // 128

    // 无限循环:带退出
    for {
        input := readInput()
        if input == "quit" {
            break
        }
        process(input)
    }
}

要点总结

  • Go只有for循环,无while关键字
  • 标准语法:for 初始化; 条件; 后置 {}
  • 省略初始化和后置可模拟while
  • for {}是无限循环,需break退出
  • break退出循环,continue跳过当前迭代
  • 标签配合break/continue控制多层循环
  • 条件无括号,代码块必须有{}
  • for是Go唯一的循环关键字

📝 发现内容有误?点击此处直接编辑

← 上一篇 Go零值机制
下一篇 → Go循环语句range
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库