Go For循环pre和post语句为空

Go For循环pre和post语句为空,go,Go,在Golang中,for循环的pre和post语句为空意味着什么,如本例所示: sum := 1 for ; sum < 10; { sum += sum } fmt.Println(sum) 在其他语言中,它的行为类似于一段时间,您不需要两个分号: sum := 1 for sum < 10 { sum += sum } fmt.Println(sum) For循环有3个元素:初始化语句、条件检查、变量更改 for <

在Golang中,for循环的pre和post语句为空意味着什么,如本例所示:

    sum := 1
    for ; sum < 10; {
        sum += sum
    }
    fmt.Println(sum)
在其他语言中,它的行为类似于一段时间,您不需要两个分号:

sum := 1
for sum < 10 {
    sum += sum
}
fmt.Println(sum)

For循环有3个元素:初始化语句、条件检查、变量更改

for <initialization statement>; <condition check>; <variable change>{
    <actual body>
}
请注意,在初始化、条件和更改阶段中,可以使用多个表达式,而不仅仅是一个表达式。因此,通过一个简单的while循环,您可以执行以下操作:

for f1, f2, n := 1, 1, 10; n > 0; f1, f2, n = f2, f1 + f2, n - 1{
    fmt.Println(f1)
}

这就产生了斐波那契数。显示它不是因为这是编写它的最佳方式,而是因为它是可能的。

记住for循环与while循环相同。 您的代码可以根据需要用其他语言重写

sum := 1
while(sum < 10) {
    sum += sum
}
fmt.Println(sum)

可以使用IUT pre和post语句编写循环的原因是,您已经在代码的其他部分指定了它们。

实际上,在go中,您可以使用for:for sum<10{sum+=sum}值得注意的是,您可能希望在for语句之外进行初始化的原因是,初始化语句中声明的变量的作用域是循环体。
for f1, f2, n := 1, 1, 10; n > 0; f1, f2, n = f2, f1 + f2, n - 1{
    fmt.Println(f1)
}
sum := 1
while(sum < 10) {
    sum += sum
}
fmt.Println(sum)
initial statement
while(condition) {
    Stuff here
    End iteration statement
}