循环

收藏654

阅读2729

更新时间2025-08-13

Go for 循环

如果你想一遍又一遍地运行相同的代码,并且每次都使用不同的值,那么循环是非常方便的。

循环的每次执行都称为一次迭代

for 循环最多可以包含三个语句:

语法

for 语句 1; 语句 2; 语句 3 {
   // 每次迭代要执行的代码
}

语句 1 初始化循环计数器值。

语句 2 在每次循环迭代中进行评估。如果评估结果为 TRUE,则循环继续。如果评估结果为 FALSE,则循环结束。

语句 3 增加循环计数器值。

注意:这些语句不需要作为循环参数出现。但是,它们需要以某种形式存在于代码中。

for 循环实例

例子 1

此例将打印从 0 到 4 的数字:

package main
import ("fmt")

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

结果:

0
1
2
3
4

例子解释:

  • i:=0; - 初始化循环计数器(i),并将起始值设置为 0
  • i < 5; - 只要 i 小于 5,循环就继续
  • i++ - 每次迭代增加循环计数器值 1

例子 2

此例以十为单位计数到 100:

package main
import ("fmt")

func main() {
  for i:=0; i <= 100; i+=10 {
    fmt.Println(i)
  }
}

结果:

0
10
20
30
40
50
60
70
80
90
100

例子解释:

  • i:=0; - 初始化循环计数器(i),并将起始值设置为 0
  • i <= 100; - 只要 i 小于或等于 100,循环就继续
  • i+=10 - 每次迭代增加循环计数器值 10

continue 语句

continue 语句用于跳过循环中的一次或多次迭代。然后,它继续循环中的下一次迭代。

实例

此例跳过值 3:

package main
import ("fmt")

func main() {
  for i:=0; i < 5; i++ {
    if i == 3 {
      continue
    }
   fmt.Println(i)
  }
}

结果:

0
1
2
4

break 语句

break 语句用于中断/终止循环执行。

实例

当 i 等于 3 时,此例将跳出循环:

package main
import ("fmt")

func main() {
  for i:=0; i < 5; i++ {
    if i == 3 {
      break
    }
   fmt.Println(i)
  }
}

结果:

0
1
2

注意:continuebreak 通常与条件一起使用。

嵌套循环

可以将一个循环放置在另一个循环内。

在这里,“内部循环”将在“外部循环”的每次迭代中执行一次:

实例

package main
import ("fmt")

func main() {
  adj := [2]string{"big", "tasty"}
  fruits := [3]string{"apple", "orange", "banana"}
  for i:=0; i < len(adj); i++ {
    for j:=0; j < len(fruits); j++ {
      fmt.Println(adj[i],fruits[j])
    }
  }
}

结果:

big apple
big orange
big banana
tasty apple
tasty orange
tasty banana

range 关键字

range 关键字用于更容易地遍历数组、切片或映射。它返回索引和值。

range 关键字的用法如下:

语法

for index, value := array|slice|map {
   // 每次迭代要执行的代码
}

实例

此例使用 range 来遍历数组并打印索引和值(idx 存储索引,val 存储值):

package main
import ("fmt")

func main() {
  fruits := [3]string{"apple", "orange", "banana"}
  for idx, val := range fruits {
     fmt.Printf("%v\t%v\n", idx, val)
  }
}

结果:

0      apple
1      orange
2      banana

提示:要仅显示值或索引,您可以使用下划线 (_) 省略其他输出。

实例

在这里,我们要省略索引(idx 存储索引,val 存储值):

package main
import ("fmt")

func main() {
  fruits := [3]string{"apple", "orange", "banana"}
  for _, val := range fruits {
     fmt.Printf("%v\n", val)
  }
}

结果:

apple
orange
banana

实例

在这里,我们要省略值(idx 存储索引,val 存储值):

package main
import ("fmt")

func main() {
  fruits := [3]string{"apple", "orange", "banana"}

  for idx, _ := range fruits {
     fmt.Printf("%v\n", idx)
  }
}

结果:

0
1
2

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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