• Go 语言中 For 循环:语法、使用方法和实例教程


    for循环用于多次执行特定的代码块,每次都可以使用不同的值。每次循环执行都称为一次迭代。for循环可以包含最多三个语句:
    语法

    for 语句1; 语句2; 语句3 {
       // 每次迭代要执行的代码
    }
    
    • 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)
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    结果:

    0
    1
    2
    3
    4
    
    • 1
    • 2
    • 3
    • 4
    • 5

    示例 2

    以下示例以十进制计数到100:

    package main
    
    import (
       "fmt"
    )
    
    func main() {
       for i := 0; i <= 100; i += 10 {
          fmt.Println(i)
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    结果:

    0
    10
    20
    30
    40
    50
    60
    70
    80
    90
    100
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    continue语句

    continue语句用于跳过一个或多个循环迭代,然后继续执行下一次迭代。

    示例

    以下示例跳过值为3的情况:

    package main
    
    import (
       "fmt"
    )
    
    func main() {
       for i := 0; i < 5; i++ {
          if i == 3 {
             continue
          }
          fmt.Println(i)
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    结果:

    0
    1
    2
    4
    
    • 1
    • 2
    • 3
    • 4

    break语句

    break语句用于终止循环的执行。

    示例

    以下示例在i等于3时中断循环:

    package main
    
    import (
       "fmt"
    )
    
    func main() {
       for i := 0; i < 5; i++ {
          if i == 3 {
             break
          }
          fmt.Println(i)
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    结果:

    0
    1
    2
    
    • 1
    • 2
    • 3

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

    嵌套循环

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

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

    示例

    package main
    
    import (
       "fmt"
    )
    
    func main() {
       adj := [2]string{"大", "美味"}
       fruits := [3]string{"苹果", "橙子", "香蕉"}
       for i := 0; i < len(adj); i++ {
          for j := 0; j < len(fruits); j++ {
             fmt.Println(adj[i], fruits[j])
          }
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    结果:

    大 苹果
    大 橙子
    大 香蕉
    美味 苹果
    美味 橙子
    美味 香蕉
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    range关键字

    range关键字用于更轻松地迭代数组、切片或映射。它返回索引和值。

    range关键字的用法如下:

    语法

    for 索引,:= 数组|切片|映射 {
       // 每次迭代要执行的代码
    }
    
    • 1
    • 2
    • 3

    示例

    以下示例使用range来迭代数组并打印索引和每个值(idx存储索引,val存储值):

    package main
    
    import (
       "fmt"
    )
    
    func main() {
       fruits := [3]string{"苹果", "橙子", "香蕉"}
       for idx, val := range fruits {
          fmt.Printf("%v\t%v\n", idx, val)
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    结果:

    0      苹果
    1      橙子
    2      香蕉
    
    • 1
    • 2
    • 3

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

    示例

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

    package main
    
    import (
       "fmt"
    )
    
    func main() {
       fruits := [3]string{"苹果", "橙子", "香蕉"}
       for _, val := range fruits {
          fmt.Printf("%v\n", val)
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    结果:

    苹果
    橙子
    香蕉
    
    • 1
    • 2
    • 3

    示例

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

    package main
    
    import (
       "fmt"
    )
    
    func main() {
       fruits := [3]string{"苹果", "橙子", "香蕉"}
       for idx, _ := range fruits {
          fmt.Printf("%v\n", idx)
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    结果:

    0
    1
    2
    
    • 1
    • 2
    • 3

    最后

    为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

    看完如果觉得有帮助,欢迎点赞、收藏关注
    在这里插入图片描述

  • 相关阅读:
    你是几星测试/开发程序员?技术型选手王大拿......
    el-select两个下拉框实现二级联动
    git使用时/info/refs not valid: is this a git repository
    基于径向基函数 (RBF) 神经网络的麦基格拉斯时间序列预测(Matlab代码实现)
    PyQt5页面跳转问题及解决方式
    面试经典 150 题 22 —(数组 / 字符串)— 28. 找出字符串中第一个匹配项的下标
    让图片说话SadTalker
    python爬取某乎保存为json文件
    企业实施设备管理系统的价值?
    【论文 01】《Attention is all you need》
  • 原文地址:https://blog.csdn.net/2302_76489021/article/details/134541886