for中的break
for中的break,和js中的break一样,会跳出当前循环,继续执行下一行代码。
package main
import ("fmt")
func main() {
for i := 0; i < 5; i++ {
if i==2 {
break
}
fmt.Println(i)
}
}
只会输出0和1
当i==2时,会跳出当前for循环,后面的for循环就不会被执行了
双重for循环
外层循环一次,里层全部循环完
package main
import ("fmt")
func main() {
for i := 0; i < 2; i++ {
for k := 0; k < 5; k++ {
fmt.Println(i,k)
}
}
}
0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
break中双重循环中的作用
package main
import ("fmt")
func main() {
for i := 0; i < 2; i++ {
for k := 0; k < 5; k++ {
if(k == 3){
break
}
fmt.Println(i,k)
}
}
}
想想一下输出的结果;
当k=3的时候,跳出里面的循环,继续执行外层循环
输出
0 0
0 1
0 2
1 0
1 1
1 2
break label 标记跳出多重循环
package main
import ("fmt")
func main() {
label: // 这里可以是 xxx : 的格式
for i := 0; i < 2; i++ {
for k := 0; k < 5; k++ {
if(k == 3){
break label // 与上面的 label : 名称一样,跳出多重循环
}
fmt.Println(i,k)
}
}
}
输出:
0 0
0 1
0 2
continue 跳过本次循环,继续下一次循环
package main
import ("fmt")
func main() {
for i := 0; i < 3; i++ {
if i == 1 {
continue
}
fmt.Println(i)
}
}
输出:
0
2
continue label 跳过指定标记的循环
package main
import ("fmt")
func main() {
label2:
for i := 0; i < 2; i++ {
for k := 0; k < 5; k++ {
if k == 3{
// 当k==3的时候,跳过当前循环,然后重新开始从i=1开始循环
continue label2
}
fmt.Println(i,k)
}
}
}
0 0
0 1
0 2
1 0
1 1
1 2
goto 语句通过标签进行代码间的无条件跳转
package main
import ("fmt")
func main() {
age := 18
if age >= 18 {
fmt.Println("成年人啦")
goto label3
}
fmt.Println("a")
label3:
//等会会跳转到这里
fmt.Println("b")
}
输出:
成年人啦
bbbb