Go 语言 for(循环)
一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 - 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/
截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观
在 Go 语言 中,循环需要使用关键字 for
来完成,格式如下:
for 初始语句;条件表达式;结束语句 {
循环体代码
}
for
循环会不停地进行循环,直到条件表达式返回 false
才推出循环,即执行 for 循环 "}" 后面的代码。
一、for 循环 - 初始语句
初始语句是第一次执行循环前执行的语句,通常情况下,我们会通过它来执行变量 初始化操作。
注意: 通过初始语句声明的变量,作用域局限在
for
循环内。
代码如下:
for i := 0; i < 100; i++ {
fmt.Println("犬小哈教程 quanxiaoha.com")
}
上面代码打印了一百次 犬小哈教程 quanxiaoha.com
。
另外,初始语句还可以忽略不写,但是初始语句后面的分号必须写,代码如下:
i := 0
for ; i < 100; i++ {
fmt.Println("犬小哈教程 quanxiaoha.com")
}
上面的代码中将 i
放在了 for
循环前面初始化,这时 i
的作用域不止作用在 for
循环内。
二、for 循环 - 条件表达式
每次在循环前,会计算条件表达式的值,如果结果为 true
, 则继续循环;否则将结束循环。
注意:条件表达式同样可以忽略不写,若不写,由于没有终止条件,则会陷入无限死循环,代码如下:
i := 0
for ; ; i++ {
if i == 10 {
break
}
fmt.Println("犬小哈教程 quanxiaoha.com")
}
上面代码打印 10 次: 犬小哈教程 quanxiaoha.com
。
图示:
不是说死循环吗?怎么只打印了 10 呢?
之所以只打印 10 次,因为循环体中有 if 判断语句,当 i 等于 10 时,执行了 break
结束循环的操作。
2.1 更美观的死循环写法
还有死循环的写法更具有可读性,代码如下:
i := 0
for {
if i == 10 {
break
}
fmt.Println("犬小哈教程 quanxiaoha.com")
}
可以看到, for
后面直接忽略了初始语句、条件表达式以及结束语句。
2.2 只有一个条件的 for 循环
上面的代码还可以进一步简化,可以将 if
判断整合到 for
循环中,代码如下:
i := 0
for i <= 10 {
i++
fmt.Println("犬小哈教程 quanxiaoha.com")
}
将条件 i == 10
条件改成了 i <= 10
, 并整合到 for
后面,若满足条件则会打印控制台,且每次对 i
执行自增加一操作。
三、for 循环 - 结束语句
在结束每次循环前被执行的语句。若循环被 break
、goto
、return
、panic
等语句强制退出,则结束语句不会被执行。