深入解析Go语言中for循环的写法

时间:2021-05-22

for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。

语法
for循环在Go编程语言中的语法是:

复制代码 代码如下:

for [condition | ( init; condition; increment ) | Range]
{
statement(s);
}


下面是控制在一个流程的for循环:

如果condition是可用的,那么对于循环只要条件为真时执行。

如果for子句是( init; condition; increment ) 存在则

初始化(init)步骤首先被执行,并且只有一次。这一步可以声明和初始化任何循环控制变量。不需要把一个声明在这里,只要有一个分号出现。

接着,条件(condition)进行了评估计算。如果为true,则执行循环体。如果是假的,循环体不执行,只是之后的for循环流量控制跳转到下一条语句。

for循环执行主体之后,控制流跳转回到增量(increment)语句。此语句可以让你更新任何循环控制变量。这个语句可以留空,只要一个分号出现条件后。

condition现在重新评估计算。如果为true,循环执行的过程中重复(循环体,然后增加步,然后再次条件)。之后如果条件为假,则循环终止。

如果range可用,然后循环执行的范围内的每个项目。

流程图:

例子:

复制代码 代码如下:
package main

import "fmt"

func main() {

var b int = 15
var a int

numbers := [6]int{1, 2, 3, 5}


for a := 0; a < 10; a++ {
fmt.Printf("value of a: %d\n", a)
}

for a < b {
a++
fmt.Printf("value of a: %d\n", a)
}

for i,x:= range numbers {
fmt.Printf("value of x = %d at %d\n", x,i)
}
}


让我们编译和运行上面的程序,这将产生以下结果:

value of a: 0value of a: 1value of a: 2value of a: 3value of a: 4value of a: 5value of a: 6value of a: 7value of a: 8value of a: 9value of a: 1value of a: 2value of a: 3value of a: 4value of a: 5value of a: 6value of a: 7value of a: 8value of a: 9value of a: 10value of a: 11value of a: 12value of a: 13value of a: 14value of a: 15value of x = 1 at 0value of x = 2 at 1value of x = 3 at 2value of x = 5 at 3value of x = 0 at 4value of x = 0 at 5

Go语言嵌套for循环
Go编程语言允许使用一个循环内嵌套另一个循环。下面的内容展示几个例子来说明这个概念。

语法
在Go语言中嵌套for循环语句的语法如下:

复制代码 代码如下:

for [condition | ( init; condition; increment ) | Range]
{
for [condition | ( init; condition; increment ) | Range]
{
statement(s);
}
statement(s);
}


例子:
下面的程序使用嵌套for循环从2至100找出的素数:

复制代码 代码如下:

package main

import "fmt"

func main() {

var i, j int

for i=2; i < 100; i++ {
for j=2; j <= (i/j); j++ {
if(i%j==0) {
break; // if factor found, not prime
}
}
if(j > (i/j)) {
fmt.Printf("%d is prime\n", i);
}
}
}


当上述代码被编译和执行时,它产生了以下结果:

2 is prime3 is prime5 is prime7 is prime11 is prime13 is prime17 is prime19 is prime23 is prime29 is prime31 is prime37 is prime41 is prime43 is prime47 is prime53 is prime59 is prime61 is prime67 is prime71 is prime73 is prime79 is prime83 is prime89 is prime97 is prime

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章