break
- break只能跳出离它最近的一层循环
- 使用标签后跳出到指定标签,跳出后不再执行对应for循环,标签只能放在for前面
单独使用
func main() {
for i := 'a'; i < 'a'+3; i++ {
fmt.Printf("\n%c\n", i)
for j := 0; j < 5; j++ {
fmt.Printf("%d ", j)
if j > 2 {
break
}
}
}
}
输出
a
0 1 2 3
b
0 1 2 3
c
0 1 2 3
使用标签
func main() {
Loop:
for i := 'a'; i < 'a'+3; i++ {
fmt.Printf("\n%c\n", i)
for j := 0; j < 5; j++ {
fmt.Printf("%d ", j)
if j > 2 {
break Loop
}
}
}
}
输出
a
0 1 2 3
continue
continue使用和break类似
单独使用
func main() {
for i := 'a'; i < 'a'+3; i++ {
fmt.Printf("\n%c\n", i)
for j := 0; j < 5; j++ {
fmt.Printf("%d ", j)
if j > 2 {
continue
}
}
}
}
输出
a
0 1 2 3 4
b
0 1 2 3 4
c
0 1 2 3 4
使用标签
func main() {
Loop:
for i := 'a'; i < 'a'+3; i++ {
fmt.Printf("\n%c\n", i)
for j := 0; j < 5; j++ {
fmt.Printf("%d ", j)
if j > 2 {
continue Loop
}
}
}
}
输出
a
0 1 2 3
b
0 1 2 3
c
0 1 2 3
goto
- goto语句可以随意跳转
- 标签可以在for前面也可以在后面
func main() {
Loop:
fmt.Println("TEST")
for j := 0; j < 5; j++ {
fmt.Println(j)
if j > 2 {
goto Loop
}
}
}
输出
TEST
0
1
2
3
TEST
0
1
2
...
func main() {
for j := 0; j < 5; j++ {
fmt.Println(j)
if j > 2 {
goto Loop
}
}
Loop:
fmt.Println("TEST")
}
输出
0
1
2
3
TEST
网友评论