Golang中的关键字continue

continue只能用在循环中,在go中只能用在for循环中,它可以终止本次循环,进行下一次循环。

continue语句后添加标签时,表示开始标签对应的循环。

Golang中的continue实例

输出1到10之间的偶数

普通版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

import "fmt"

func test_continue() {
for i := 0; i < 10; i++ {
if i%2 == 0 {
fmt.Printf("i: %v\n", i)
} else {
continue
}
fmt.Println("跳出当前循环,进行下一次循环")
}
}
func main() {
test_continue()
}


运行结果

1
2
3
4
5
6
7
8
9
10
i: 0
跳出当前循环,进行下一次循环
i: 2
跳出当前循环,进行下一次循环
i: 4
跳出当前循环,进行下一次循环
i: 6
跳出当前循环,进行下一次循环
i: 8
跳出当前循环,进行下一次循环

运用到标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

import "fmt"

func lab_continue() {
for i := 0; i < 5; i++ {
MYLABEL:
for j := 0; j < 5; j++ {
if i == 2 && j == 2 {
continue MYLABEL
}
fmt.Printf("%v, %v\n", i, j)
}
}
}
func main() {
lab_continue()
}

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
0, 0
0, 1
0, 2
0, 3
0, 4
1, 0
1, 1
1, 2
1, 3
1, 4
2, 0
2, 1
2, 3 //这边2,2被跳出了
2, 4
3, 0
3, 1
3, 2
3, 3
3, 4
4, 0

continue与break的区别

break是跳出结束当前循环。

而continue是跳出一次循环,后面还会继续。

举例比如用break

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

import "fmt"

func lab_continue() {
for i := 0; i < 5; i++ {
MYLABEL:
for j := 0; j < 5; j++ {
if i == 2 && j == 2 {
break MYLABEL
}
fmt.Printf("%v, %v\n", i, j)
}
}
}
func main() {
lab_continue()
}

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
0, 0
0, 1
0, 2
0, 3
0, 4
1, 0
1, 1
1, 2
1, 3
1, 4
2, 0
2, 1 //这边后面就没进行了
3, 0
3, 1
3, 2
3, 3
3, 4
4, 0
4, 1
4, 2
4, 3