我有这个测试,你应该做出这样的输出,我在youtube教程中搜索"对于golang";并解释了它在戈兰有两种风格,
121111213142211121314231112131424111213142.21111213142211121314231112131424111213143.21111213142211121314231112131424111213144.21111213142211121314231112131424111213145.2111121314221112131423111213142411121314
它应该是垂直输出的,而不是水平输出的,所以我构建了3个变量,i=1,j=21,k=11,我使用它来自动增加值,第一个样式有效,但第二个样式不知何故有不同的
yt视频: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 := ...
的第一种样式中,每当运行下一个循环时,都会将值重置为init状态,这意味着它总是将j
设置为21,将k
设置为11。所以会有很多次循环运行。
相反,在第二种样式中,在循环之前初始化值j
和k
。因此,在i
的第二个循环中,j
和k
仍然是相同的值,按顺序为25和15。
有多个选项可以在golang中打印输出。
fmt.Println
在末尾添加一个新行fmt.Printf
按原样打印内容。
有关更多详细信息,请阅读文档。
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
转义序列。
检查正在运行的代码链接