For 循环 pre 和 post 语句为空

在 Golang 中,for 循环的 pre 和 post 语句是空的,如本例中是什么意思:


    sum := 1

    for ; sum < 10; {

        sum += sum

    }

    fmt.Println(sum)


慕虎7371278
浏览 218回答 3
3回答

GCT1015

请记住,for 循环与 while 循环相同。您的代码可以用其他语言重写为sum := 1while(sum < 10) {&nbsp; &nbsp; sum += sum}fmt.Println(sum)在一个for循环中,有 3 个部分。for(initial statement ; condition ;&nbsp; end statement usually iterate)这相当于initial statementwhile(condition) {&nbsp; &nbsp; Stuff here&nbsp; &nbsp; End iteration statement}可以在没有 pre 和 post 语句的情况下编写循环的原因是因为您已在代码的其他部分指定了它们。

慕田峪7331174

For 循环有 3 个元素:初始化语句、条件检查、变量更改。for <initialization statement>; <condition check>; <variable change>{&nbsp; &nbsp; <actual body>}初始化语句只在循环开始时执行一次。根据它的名称初始化一些东西(在很多情况下是一个你迭代的变量)。如果它被省略,那么它什么都不做条件检查验证条件的计算结果是否为真。如果不是,则循环停止。如果省略,则始终为真。变量更改是在循环的每次迭代期间修改变量。大多数情况下,迭代变量会增加/减少,但您可以随心所欲。如果省略,则什么都不做在此解释之后,您可以看到此循环在您的初始化和后置条件阶段什么都不做。您也不需要在此处使用分号。这将足够了。sum := 1for sum < 10 {&nbsp; &nbsp; sum += sum}你甚至可以写一个这样的循环:for {}它永远不会停止执行,或者做一些类似 while 循环的事情:t := 10for t > 0{&nbsp; t--}请注意,在初始化、条件和更改阶段中,您可以使用许多表达式(不仅仅是一个)。因此,通过一个简单的 while 循环,您可以执行以下操作:for f1, f2, n := 1, 1, 10; n > 0; f1, f2, n = f2, f1 + f2, n - 1{&nbsp; &nbsp; fmt.Println(f1)}这创建了一个斐波那契数字go playground。展示这一点不是因为这是最好的编写方式,而是因为它是可能的。

哆啦的时光机

它的行为与while其他语言中的a 类似,您不需要两个分号:sum := 1for sum < 10 {&nbsp; &nbsp; sum += sum}fmt.Println(sum)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go