前言:
截止今日,我初步统计了本人发布的关于go语言基础语法的相关文章,我一共发布了5篇文章,包括:语言简介、环境搭建、变量、数据类型、容器类数据类型、。但是阅读量只有40不到,可以说是少得可怜。
经过思考,我猜测导致现状的原因可能有以下几点:
1、go语言作为新兴语言,目前在国内go语言开发者所占数量目前还不多
2、分享的内容大多是go语言基础知识,这些知识在菜鸟教程或是其他入门书籍都比较容易获取到
3、分享的内容很乏,重点不够突出,不能很好的帮助开发者解决开发过程中的一些痛点
所以经过慎重考虑,在接下来的文章中将着重与大家分享一些能解决实际问题的知识点,希望能更好的帮助到其他的go语言使用者。
本篇文章将和大家分享的是——Go语言跳出多层for循环的方式。
方式一、
使用标记及循环控制语句break,具体示例如下:
// 定于一个跳出循环标记
endfor := false
// 定义嵌套for循环
for i := 0; i < 10; i++ {
println("i == ", i)
for a := 0; a < 10; a++ {
println("a == ", a)
if a == 3 {
// 修改跳出循环标记
endfor = true
break
}
}
// 外层循环判断循环标记,true则结束循环
if endfor {
break
}
}
/*
输出结果
i == 0
a == 0
a == 1
a == 2
a == 3
*/
方式二、
使用go语言的goto语句跳出多层循环
// 定义嵌套for循环
for i := 0; i < 10; i++ {
println("i == ", i)
for a := 0; a < 10; a++ {
println("a == ", a)
if a == 3 {
// 跳转执行goto代码
goto endfor
}
}
println("before endfor")
endfor:
println("after endfor")
/*
输出结果
i ==0
a == 0
a == 1
a == 2
a == 3
after endfor
*/
}
从输出结果可以看出使用goto跳转语句可以正常的跳出多层循环,并执行goto指定的代码块。不过,值得注意的是goto代码块之前的代码将会跳过,如上例中的 println("before endfor")就没有执行。