在Golang中,这意味着for循环的pre和post语句是空的,如下例所示:
sum := 1
for ; sum < 10; {
sum += sum
}
fmt.Println(sum)
答案 0 :(得分:4)
请记住,for循环与while循环相同。 您的代码可以用其他语言重写
sum := 1
while(sum < 10) {
sum += sum
}
fmt.Println(sum)
在for
循环中,有3个部分。
for(initial statement ; condition ; end statement usually iterate)
这相当于
initial statement
while(condition) {
Stuff here
End iteration statement
}
你的循环可以用pre和post语句编写的原因是因为你已经在代码的其他部分指定了它们。
答案 1 :(得分:2)
在其他语言中它的行为类似于while
,您不需要两个分号:
sum := 1
for sum < 10 {
sum += sum
}
fmt.Println(sum)
答案 2 :(得分:2)
for循环有3个元素:初始化语句,条件检查,变量更改。
for <initialization statement>; <condition check>; <variable change>{
<actual body>
}
在这个解释之后,你可以看到这个循环在初始化和后期条件阶段没有任何作用。
您也不需要在这里使用分号。这就足够了。
sum := 1
for sum < 10 {
sum += sum
}
你甚至可以编写一个这样的循环:for {}
永远不会停止执行,或者执行类似while循环的操作:
t := 10
for t > 0{
t--
}
请注意,在初始化,条件和更改阶段中,您可以使用许多表达式(不只是一个)。因此,使用简单的while循环,您可以执行以下操作:
for f1, f2, n := 1, 1, 10; n > 0; f1, f2, n = f2, f1 + f2, n - 1{
fmt.Println(f1)
}
创建斐波纳契数 go playground 。显示这不是因为这是写它的最佳方式,而是因为它是可能的。