go之for循环
循环介绍
在go中,只有for循环,没有其他循环关键字,没有while循环,也没有do while
通过for循环是可以实现 类似于while的功能
语法
1 2 3 | for 变量初始化;条件;自增{ 循环体的内容 } |
重点记忆:for关键字后三段,都可以省略不写
break和continue的使用方法和python的一样
for循环使用
基本使用,打印0-9,变量定义需要简略声明方式
1 2 3 4 5 6 7 8 9 10 | package main import "fmt" func main() { for i := 0; i < 10; i++ { fmt.Println(i) } } |
省略第一部分,和上面的区别在于i的作用域范围不一样,这个i在for外包还有效
1 2 3 4 5 6 7 8 9 10 11 12 | package main import "fmt" func main() { i := 0 //var i =0 //var i int = 0 for ; i < 10; i++ { // 第一个分号必须写 fmt.Println(i) } } |
省略第三部分
1 2 3 4 5 6 7 8 9 10 | package main import "fmt" func main() { for i := 0; i < 10; { // 分号必须写 fmt.Println(i) i++ } } |
省略第一部分和第三部分
这就是while循环
1 2 3 4 5 6 7 8 9 10 11 12 | package main import "fmt" func main() { i := 0 //for ;i < 10; { // 分号可以不写 for i < 10 { // 分号可以不写 fmt.Println(i) i++ } } |
三部分全部省略
死循环,等同于 for true{}
1 2 3 4 5 6 7 8 9 | package main import "fmt" func main() { for ; ; { fmt.Println( "hello world" ) } } |
range关键字
上面的for循环都是基于索引的循环,python中没有基于索引的循环,python中都是基于迭代的循环,python中的for循环,都是可迭代对象。
go中基于索引的和基于迭代的
基于迭代一般用法
1 2 3 4 5 6 7 8 9 10 | package main import "fmt" func main() { var a [3]int=[3]int{4,5,6} for i:=0;i<len(a);i++{ // 基于索引 fmt.Println(a[i]) } } |
使用range关键字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package main import "fmt" func main() { var a [3]int=[3]int{4,5,6} for i,v:= range a{ //range 在go中是关键字 fmt.Println(i,v) } } //结果 //0 4 //1 5 //2 6 |
如果只想要值
1 2 3 4 5 6 7 8 9 10 11 | package main import "fmt" func main() { var a [3]int=[3]int{4,5,6} for _,v:= range a{ //range 在go中是关键字 fmt.Println(v) } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」