设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间23 现在时间23 缓存数据 荣耀也罢,屈辱也罢,都要以平和的心态去面对,少一些无奈与感慨,多一份从容和淡然。晚安!

荣耀也罢,屈辱也罢,都要以平和的心态去面对,少一些无奈与感慨,多一份从容和淡然。晚安!

查看: 1002|回复: 2

深入解析Go语言中for循环的写法

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:205
  • 打卡月天数:0
  • 打卡总奖励:3193
  • 最近打卡:2023-08-27 07:15:46
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
415
主题
396
精华
0
金钱
4440
积分
839
注册时间
2022-12-20
最后登录
2025-9-11

发表于 2023-10-18 21:05:24 | 显示全部楼层 |阅读模式
for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。
语法
for循环在Go编程语言中的语法是:

for [condition |  ( init; condition; increment ) | Range]
{
   statement(s);
}

下面是控制在一个流程的for循环:
如果condition是可用的,那么对于循环只要条件为真时执行。
如果for子句是( init; condition; increment ) 存在则
初始化(init)步骤首先被执行,并且只有一次。这一步可以声明和初始化任何循环控制变量。不需要把一个声明在这里,只要有一个分号出现。
接着,条件(condition)进行了评估计算。如果为true,则执行循环体。如果是假的,循环体不执行,只是之后的for循环流量控制跳转到下一条语句。
for循环执行主体之后,控制流跳转回到增量(increment)语句。此语句可以让你更新任何循环控制变量。这个语句可以留空,只要一个分号出现条件后。
condition现在重新评估计算。如果为true,循环执行的过程中重复(循环体,然后增加步,然后再次条件)。之后如果条件为假,则循环终止。

如果range可用,然后循环执行的范围内的每个项目。
流程图:

1.jpg

例子:

package main
import "fmt"
func main() {
   
   var b int = 15
   var a int
   numbers := [6]int{1, 2, 3, 5}
   /* for loop execution */
   for a := 0; a < 10; a++ {
      fmt.Printf("value of a: %d\n", a)
   }
   for a < b {
      a++
      fmt.Printf("value of a: %d\n", a)
      }
   for i,x:= range numbers {
      fmt.Printf("value of x = %d at %d\n", x,i)
   }   
}

让我们编译和运行上面的程序,这将产生以下结果:
  1. value of a: 0
  2. value of a: 1
  3. value of a: 2
  4. value of a: 3
  5. value of a: 4
  6. value of a: 5
  7. value of a: 6
  8. value of a: 7
  9. value of a: 8
  10. value of a: 9
  11. value of a: 1
  12. value of a: 2
  13. value of a: 3
  14. value of a: 4
  15. value of a: 5
  16. value of a: 6
  17. value of a: 7
  18. value of a: 8
  19. value of a: 9
  20. value of a: 10
  21. value of a: 11
  22. value of a: 12
  23. value of a: 13
  24. value of a: 14
  25. value of a: 15
  26. value of x = 1 at 0
  27. value of x = 2 at 1
  28. value of x = 3 at 2
  29. value of x = 5 at 3
  30. value of x = 0 at 4
  31. value of x = 0 at 5
复制代码
Go语言嵌套for循环
Go编程语言允许使用一个循环内嵌套另一个循环。下面的内容展示几个例子来说明这个概念。
语法
在Go语言中嵌套for循环语句的语法如下:

for [condition |  ( init; condition; increment ) | Range]
{
   for [condition |  ( init; condition; increment ) | Range]
   {
      statement(s);
   }
   statement(s);
}

例子:
下面的程序使用嵌套for循环从2至100找出的素数:

package main
import "fmt"
func main() {
   /* local variable definition */
   var i, j int
   for i=2; i < 100; i++ {
      for j=2; j <= (i/j); j++ {
         if(i%j==0) {
            break; // if factor found, not prime
         }
      }
      if(j > (i/j)) {
         fmt.Printf("%d is prime\n", i);
      }
   }  
}

当上述代码被编译和执行时,它产生了以下结果:
  1. 2 is prime
  2. 3 is prime
  3. 5 is prime
  4. 7 is prime
  5. 11 is prime
  6. 13 is prime
  7. 17 is prime
  8. 19 is prime
  9. 23 is prime
  10. 29 is prime
  11. 31 is prime
  12. 37 is prime
  13. 41 is prime
  14. 43 is prime
  15. 47 is prime
  16. 53 is prime
  17. 59 is prime
  18. 61 is prime
  19. 67 is prime
  20. 71 is prime
  21. 73 is prime
  22. 79 is prime
  23. 83 is prime
  24. 89 is prime
  25. 97 is prime
复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-26
最后登录
2022-12-26

发表于 2024-12-30 02:12:39 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

  • 打卡等级:即来则安
  • 打卡总天数:27
  • 打卡月天数:0
  • 打卡总奖励:316
  • 最近打卡:2025-11-26 01:22:44
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
370
积分
60
注册时间
2022-12-30
最后登录
2025-11-26

发表于 2025-10-26 06:31:46 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表