for循环用于多次执行特定的代码块,每次可能使用不同的值。每次循环执行称为一次迭代。 for 循环最多可以包含三个语句:
语法
对于声明1;声明2;声明3 {
//每次迭代执行的代码
}
语句1:初始化循环计数器的值。
语句2:评估每个循环迭代。如果计算结果为TRUE,则循环继续。如果计算结果为FALSE,则结束循环。
语句3:增加循环计数器的值。
注意:这些语句不需要作为循环的参数存在,但它们确实需要以某种形式出现在代码中。
示例 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 语句用于跳过一次或多次循环迭代,然后继续下一次迭代。
示例
以下示例跳过值为3 的情况:
包主
进口(
'fmt'
)
函数主() {
对于我:=0;我5;我++ {
如果我==3{
继续
}
fmt.Println(i)
}
}
结果:
0
1
2
4
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 关键字的用法如下:
语法
对于索引,值:=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 -59000InfoQ,010- 59000简书,博客园,慕课,51CTO,helloworld,腾讯开发者社区
如果您看完本文后觉得有帮助,请拨打,和阿里开发者社区