当前位置:网站首页> 详解Go语言中for循环,break和continue的使用
详解Go语言中for循环,break和continue的使用
2022-06-30 15:41:00 【1024问】
基本语法
有始有终的条件循环
带条件的循环
无限循环
数组循环
使用计数器循环
利用range循环
Map循环
string的遍历
Break和Continue
基本语法和C语言同源的语法格式,有始有终的循环,for init; condition; post { }
带条件的while循环,for condition { }
无限循环,for { }
有始有终的条件循环sum := 0for i := 0; i < 10; i++ { sum = sum + i}注意:i变量在循环结束后无法使用
带条件的循环count := 0for count < 10 { fmt.Printf("Current count = %v\n", count) count++}无限循环由于循环不会停止,这里使用break来中断循环,后面还会详细介绍
count := 0 for { fmt.Printf("current count = %v\n", count) count++ if count > 10 { break } }数组循环使用计数器循环类似C语言中的循环,我们可以通过计数器结合数组长度实现对数组的遍历,同时能获取数组索引,如下面例子所示
package mainimport "fmt"func main() { myarray := []string{"a", "b", "c", "d"} for i := 0; i < len(myarray); i++ { fmt.Printf("Array index is %v, value is %v\n", i, myarray[i]) }}利用range循环利用range可以更容易的进行循环,并且range还能用于slice,channel和map的循环中
package mainimport "fmt"func main() { myarray := []string{"a", "b", "c", "d"} for index, item := range myarray { fmt.Printf("current index is %v, value is %v\n", index, item) }}Map循环在介绍Map时,我们已经尝试用for循环对Map进行遍历,我们再来巩固一下
package mainimport "fmt"func main() { mymap := map[int]string{1 : "a", 2 : "b", 3 : "c"} for key, value := range mymap { fmt.Printf("current key is %v, value is %v\n", key, value) }}如果只想获取key,则可以使用,省略value
for key := range mymap {或者使用_,前面介绍过_无法用于变量,像个占位符
for _, value := range mymap {string的遍历下面的示例是对string类型的遍历,除了普通的字符,对于Unicode字符切分,字符通常是8位的,UTF-8的字符最高可能是32位的
package mainimport "fmt"func main() { mystr := "abc" for pos, char := range mystr { fmt.Printf("character '%c' starts at byte position %d\n", char, pos) } for pos, char := range "Gő!" { fmt.Printf("character '%c' starts at byte position %d\n", char, pos) }}Break和Continuecharacter 'G' starts at byte position 0
character 'ő' starts at byte position 1
character '!' starts at byte position 3
与大部分语言一致
Break结束当前循环
Continue开始下一次循环
package mainimport "fmt"func main() { for i := 0; i < 10; i++ { if i == 3 { fmt.Printf("For continue at here: %d\n", i) continue } if i > 5 { fmt.Printf("For break at here: %d\n", i) break } fmt.Printf("Current for count: %d\n", i) } fmt.Println("For loop end here")}输出结果
Current for count: 0
Current for count: 1
Current for count: 2
For continue at here: 3
Current for count: 4
Current for count: 5
For break at here: 6
For loop end here
不推荐方式
Go中也支持Lable方式,类似Goto,一般不使用
J: for j := 0; j < 5; j++ { for i := 0; i < 10; i++ { if i > 5 { break J } fmt.Println(i) } }到此这篇关于详解Go语言中for循环,break和continue的使用的文章就介绍到这了,更多相关Go语言 for break continue内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
边栏推荐
- Policy Center-Permissions and APIs that Access Sensitive Information
- Parameter optimization - bias and variance
- With as subquery in Oracle
- 360数科、蚂蚁集团等入选中国信通院“业务安全推进计划”成员单位
- Mysql事务/锁/日志总结
- halcon变量窗口的图像变量不显示,重启软件和电脑都没用
- Does flinkcdc have to be a clustered version if the monitored database is Mongo
- Google Play 索引表
- Unsupported major. minor version 52.0
- mysql主从配置
猜你喜欢

Advanced C language - pointer 3 - knowledge points sorting

分布式机器学习:模型平均MA与弹性平均EASGD(PySpark)

ASP. Net core Middleware

LeCun指明下一代AI方向:自主机器智能

今晚19:00知识赋能第2期直播丨OpenHarmony智能家居项目之控制面板界面设计

大学生研究生毕业找工作,该选择哪个方向?

ASP. Net core signalr series hub tutorial

Policy Center > Misrepresentation

【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例

《你的灯亮着吗》开始解决问题前,得先知道“真问题”是什么
随机推荐
C language foundation - pointer array - initialization method & constant pointer array, pointer constant array
Solution for IIS failing to load font files (*.woff, *.svg)
开源 STM32 USB-CAN项目
Table responsive layout tips for super nice
Map reduce case super detailed explanation
Oracle中的With As 子查询
How the edge computing platform helps the development of the Internet of things
Lecun points out the direction of next generation AI: autonomous machine intelligence
爬虫(1) - 爬虫基础入门理论篇
Alibaba cloud OSS object storage cross domain settings
Google Play 索引表
CloudXR如何推动XR的未来发展
Does flinkcdc have to be a clustered version if the monitored database is Mongo
Policy Center > Malware > Malware
Flask-SQLAlchemy----sqlalchemy. exc.InvalidRequestError: SQL expression, column, or mapped e---ORM(9)
Mysql database - create user name & modify permission
有意思的鼠标指针交互探究
Compulsory national standard for electronic cigarette GB 41700-2022 issued and implemented on October 1, 2022
Advanced C language - pointer 3 - knowledge points sorting
With as subquery in Oracle