3 回答
TA贡献1827条经验 获得超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 语句的情况下编写循环的原因是因为您已在代码的其他部分指定了它们。
TA贡献1828条经验 获得超13个赞
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。展示这一点不是因为这是最好的编写方式,而是因为它是可能的。
TA贡献1779条经验 获得超6个赞
它的行为与while其他语言中的a 类似,您不需要两个分号:
sum := 1
for sum < 10 {
sum += sum
}
fmt.Println(sum)
- 3 回答
- 0 关注
- 217 浏览
添加回答
举报