我在 golang 中尝试了 2 种嵌套循环,但它有不同的输出
i tried 2 style of nested loop in golang, but it has different output
我有这个测验,你应该做出这样的输出,我在 youtube 教程中搜索“for golang”,它解释说它在 golang 中有 2 种 for,
1
21
11
12
13
14
22
11
12
13
14
23
11
12
13
14
24
11
12
13
14
2个
21
11
12
13
14
22
11
12
13
14
23
11
12
13
14
24
11
12
13
14
3个
21
11
12
13
14
22
11
12
13
14
23
11
12
13
14
24
11
12
13
14
4个
21
11
12
13
14
22
11
12
13
14
23
11
12
13
14
24
11
12
13
14
5个
21
11
12
13
14
22
11
12
13
14
23
11
12
13
14
24
11
12
13
14
应该是垂直输出,不是水平输出,所以我建了3个变量,i = 1,j = 21,k = 11,用for自动增加值,第一种可以,但是第二种风格有点不同
yt vid : https://www.youtube.com/watch?v=jZ-llP_yKNo 在 5:28 分钟他解释说有 2 种风格
第一种风格:
for i:=1; i <= 5; i++{
fmt.Println(i)
for j:=21; j <= 24; j++ {
println(j)
for k:=11; k<=14; k++ {
fmt.Println(k)
}
}
}
第二种风格:
i:=1
j:=21
k:=11
for i <= 5{
fmt.Println(i)
i++
for j <= 24 {
println(j)
j++
for k<=14 {
fmt.Println(k)
k++
}
}
}
这不是关于语法,而是关于你的逻辑。
在 for i := ...
的第一种样式中,每当下一个循环 运行 时,您将值重置为初始状态,这意味着它总是将 j
设置为 21 和 k
到11。所以会有很多子循环运行s.
相比之下,第二种风格,你在循环之前初始化值 j
和 k
。所以在 i
的第二个循环中,j
和 k
仍然是相同的值,顺序为 25 和 15。
在 golang 中有多种打印输出的选项。
fmt.Println
在末尾追加一个新行。
fmt.Printf
按原样打印内容。
有关详细信息,请阅读 documentation。
for i := 1; i <= 5; i++ {
fmt.Printf("%v ", i)
for j := 21; j <= 24; j++ {
fmt.Printf("%v ", j)
for k := 11; k <= 14; k++ {
fmt.Printf("%v ", k)
}
}
}
输出
1 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 2 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 3 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 4 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 5 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14
要添加新行,请使用 \n
转义序列。
检查运行代码link
我有这个测验,你应该做出这样的输出,我在 youtube 教程中搜索“for golang”,它解释说它在 golang 中有 2 种 for,
1 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 2个 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 3个 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 4个 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 5个 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14
应该是垂直输出,不是水平输出,所以我建了3个变量,i = 1,j = 21,k = 11,用for自动增加值,第一种可以,但是第二种风格有点不同
yt vid : https://www.youtube.com/watch?v=jZ-llP_yKNo 在 5:28 分钟他解释说有 2 种风格
第一种风格:
for i:=1; i <= 5; i++{
fmt.Println(i)
for j:=21; j <= 24; j++ {
println(j)
for k:=11; k<=14; k++ {
fmt.Println(k)
}
}
}
第二种风格:
i:=1
j:=21
k:=11
for i <= 5{
fmt.Println(i)
i++
for j <= 24 {
println(j)
j++
for k<=14 {
fmt.Println(k)
k++
}
}
}
这不是关于语法,而是关于你的逻辑。
在 for i := ...
的第一种样式中,每当下一个循环 运行 时,您将值重置为初始状态,这意味着它总是将 j
设置为 21 和 k
到11。所以会有很多子循环运行s.
相比之下,第二种风格,你在循环之前初始化值 j
和 k
。所以在 i
的第二个循环中,j
和 k
仍然是相同的值,顺序为 25 和 15。
在 golang 中有多种打印输出的选项。
fmt.Println
在末尾追加一个新行。
fmt.Printf
按原样打印内容。
有关详细信息,请阅读 documentation。
for i := 1; i <= 5; i++ {
fmt.Printf("%v ", i)
for j := 21; j <= 24; j++ {
fmt.Printf("%v ", j)
for k := 11; k <= 14; k++ {
fmt.Printf("%v ", k)
}
}
}
输出
1 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 2 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 3 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 4 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14 5 21 11 12 13 14 22 11 12 13 14 23 11 12 13 14 24 11 12 13 14
要添加新行,请使用 \n
转义序列。
检查运行代码link