当前位置:网站首页> 详解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
- Policy Center > Google Play‘s Target API Level Policy
- Mysql事务/锁/日志总结
- Management joint examination - mathematical formula
- Cloud XR, how to help industrial upgrading
- 如何得到股票开户的优惠活动?在线开户安全么?
- 【Leetcode】链表排序(逐步提高时空复杂度)
- Practical cases of data visualization (timeline rotation diagram, streamlit control year metabase visualization tutorial) 2.0
- mysql主从配置
- 深入分析GadgetInspector核心代码
猜你喜欢
ASP. Send information in sinalr controller of net core
ASP. Net core signalr series hub tutorial
Google play index table
数数据可视化实战案例(timeline轮播图,streamlit 控件年份 metabase可视化使用教程)2.0
Lecun points out the direction of next generation AI: autonomous machine intelligence
Interview experience of service end test engineer
深入理解.Net中的线程同步之构造模式(二)内核模式1.内核模式构造物Event事件
Smart wind power: operation and maintenance of digital twin 3D wind turbine intelligent equipment
今晚19:00知识赋能第2期直播丨OpenHarmony智能家居项目之控制面板界面设计
LeCun指明下一代AI方向:自主机器智能
随机推荐
如何得到股票开户的优惠活动?在线开户安全么?
Kindle down, ireader relay
Imeta | Ye Mao / Shi Yu reviewed the dynamic shuttle and ecological function of intracellular and extracellular genes in the environmental microbiome
linux下新建Mysql数据库并导入sql文件
Openresty built in variable
360 digital, ant group, etc. were selected as member units of the "business security promotion plan" of the Chinese Academy of Communications
[time series database incluxdb] code example for configuring incluxdb+ data visualization and simple operation with C under Windows Environment
Visualization of provincial GDP with CSV metabase processing
[algorithm] after summarizing the four linked lists, I brushed two interview questions
4.12 input() input function and comments
Alibaba cloud OSS object storage cross domain settings
【Unity UGUI】ScrollRect 动态缩放格子大小,自动定位到中间的格子
Compare whether the two arrays are the same
openresty 内置变量
4.5 integer
Policy Center > Misrepresentation
Under the pressure of technology, you can quickly get started with eth smart contract development, which will take you into the ETH world
Fundamentals of C language -- similarities and differences between arrays and pointers
Map reduce case super detailed explanation
4.8 data type conversion