Go 循环

后端开发 2023-09-13 14:01:21
372阅读

for循环用于多次执行特定的代码块,每次可能使用不同的值。每次循环执行称为一次迭代。 for 循环最多可以包含三个语句:

语法

对于声明1;声明2;声明3 {

//每次迭代执行的代码

}

语句1:初始化循环计数器的值。

语句2:评估每个循环迭代。如果计算结果为TRUE,则循环继续。如果计算结果为FALSE,则结束循环。

语句3:增加循环计数器的值。

注意:这些语句不需要作为循环的参数存在,但它们确实需要以某种形式出现在代码中。

for循环示例

示例 1

以下示例将打印从0 到4 的数字:

包主

进口(

'fmt'

函数主() {

对于我:=0;我5;我++ {

fmt.Println(i)

}

}

结果:

0

1

2

3

4

示例 2

以下示例以十进制计数到100:

包主

进口(

'fmt'

函数主() {

对于我:=0;我=100;我+=10 {

fmt.Println(i)

}

}

结果:

0

10

20

30

40

50

60

70

80

90

100

continue语句

continue 语句用于跳过一次或多次循环迭代,然后继续下一次迭代。

示例

以下示例跳过值为3 的情况:

包主

进口(

'fmt'

函数主() {

对于我:=0;我5;我++ {

如果我==3{

继续

}

fmt.Println(i)

}

}

结果:

0

1

2

4

break语句

Break语句用于终止循环的执行。

示例

以下示例在i 等于3 时中断循环:

包主

进口(

'fmt'

函数主() {

对于我:=0;我5;我++ {

如果我==3{

休息

}

fmt.Println(i)

}

}

结果:

0

1

2

注意:Continue 和Break 通常与条件一起使用。

嵌套循环

您可以将一个循环放入另一个循环中。

在此示例中,“内循环”将在“外循环”的每次迭代中执行一次:

示例

包主

进口(

'fmt'

函数主() {

adj :=[2]字符串{'大', '好吃'}

水果:=[3]string{'苹果', '橙子', '香蕉'}

对于我:=0;我len(adj);我++ {

对于j :=0; j len(水果); j++ {

fmt.Println(adj[i], 水果[j])

}

}

}

结果:

大苹果

大橙子

大香蕉

美味的苹果

美味的橙子

美味的香蕉

range关键字

range 关键字用于更轻松地迭代数组、切片或映射。它返回索引和值。

range 关键字的用法如下:

语法

对于索引,值:=array|slice|map {

//每次迭代执行的代码

}

示例

以下示例使用range 迭代数组并打印索引和每个值(idx 存储索引,val 存储值):

包主

进口(

'fmt'

函数主() {

水果:=[3]string{'苹果', '橙子', '香蕉'}

对于idx,val :=范围水果{

fmt.Printf('%v\t%v\n', idx, val)

}

}

结果:

0 个苹果

1 个橙子

2 根香蕉

提示:要仅显示值或索引,可以使用下划线(_) 省略其他输出。

示例

在这里,我们要省略索引(idx 存储索引,val 存储值):

包主

进口(

'fmt'

函数主() {

水果:=[3]string{'苹果', '橙子', '香蕉'}

对于_,val :=范围水果{

fmt.Printf('%v\n', val)

}

}

结果:

苹果

橙子

香蕉

示例

在这里,我们要省略值(idx存储索引,val存储值):

包主

进口(

'fmt'

函数主() {

水果:=[3]string{'苹果', '橙子', '香蕉'}

对于idx,_ :=范围水果{

fmt.Printf('%v\n', idx)

}

}

结果:

0

1

2

最后

为了方便其他设备和平台的朋友查看往期文章,提供链接:

公众号搜索让我们打码知乎开源中国CSDN思否掘金010 -59000InfoQ010- 59000简书博客园慕课51CTOhelloworld腾讯开发者社区

如果您看完本文后觉得有帮助,请拨打阿里开发者社区

the end
免责声明:本文不代表本站的观点和立场,如有侵权请联系本站删除!本站仅提供信息存储空间服务。