方式一、
使用标记及循环控制语句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”)就没有执行。