循环语句
题目如下
关于循环语句,下面说法正确的有()
- A. 循环语句既支持 for 关键字,也支持 while 和 do-while;
- B. 关键字 for 的基本使用方法与 C/C++ 中没有任何差异;
- C. for 循环支持 continue 和 break 来控制循环,但是它提供了一个更高级的 break,可以选择中断哪一个循环;
- D. for 循环不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量;
答案:
1 |
|
解析:
A. 该选项不正确。Go语言中只支持for循环语句,而不支持while和do-while循环语句。但是for循环的使用方法较为灵活,使用
for
循环来模拟这些语句的效果。可以满足大部分循环需求。选项 B 中的说法不正确,因为 Go 语言中的
for
语句与 C/C++ 中略有不同。例如:- 条件语句中不需要括号;
- 可以省略条件语句,相当于
while(true)
; - 提供了一个更高级的
break
,可以选择中断哪一个循环; - 不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。
C. 该选项正确。Go语言的for循环语句支持continue和break关键字来控制循环流程,同时还提供了一个更高级的break,可以选择中断指定的循环语句。
这里使用Loop标签,用于选择需要中断哪一个循环,下面的例子选择中断外面的循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14func main() {
Loop:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
// 使用标签选择中断外层循环
break Loop
}
fmt.Printf("i:%d, j:%d\n", i, j)
}
}
// 标签名为 Loop,用于中断外层循环
fmt.Println("Done!")
}输出如下:
1
2
3
4i:0, j:0
i:0, j:1
i:0, j:2
i:1, j:0下面的例子选择中断内部循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24package main
import "fmt"
type User struct {
ID uint
Name string
}
func main() {
for i := 0; i < 3; i++ {
Loop:
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
// 使用标签选择中断外层循环
break Loop
}
fmt.Printf("i:%d, j:%d\n", i, j)
}
}
// 标签名为 Loop,用于中断内层循环
fmt.Println("Done!")
}输出如下:
1
2
3
4
5
6
7
8i:0, j:0
i:0, j:1
i:0, j:2
i:1, j:0
i:2, j:0
i:2, j:1
i:2, j:2
Done!对比上述两种情况,应该就能大概理解这个Loop的用法了。
D. 该选项正确。Go语言中的for循环语句不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。
//会报错 for i := 0, j := 1; i < 10; i ++{ ... }
1
2
3
4
5
6
7
- ```go
//可以正常使用
//平行赋值: i, j := 0, 0
for i, j := 0, 0; i < 10; i++ {
}
循环语句
http://example.com/2023/04/25/Go每日一题/循环语句/