最适合网络开发者的网站
Golang。初学者课程

尿素

循环


for loop 按照指定的次数循环执行代码块。

for loop 是 Go 中唯一可用的循环。


循环

如果您想一遍又一遍地运行相同的代码,并且每次都使用不同的值,那么循环会很方便。

每次循环的执行都称为 迭代.

for 循环最多可以包含三个语句:

句法

为了 语句1;语句2;语句3 {
   // 每次迭代都要执行的代码
}

声明1 初始化循环计数器值。

声明2 每次循环迭代时进行评估。如果评估结果为 TRUE,则循环继续。如果评估结果为 FALSE,则循环结束。

声明3 增加循环计数器的值。

笔记: 这些语句不需要作为循环参数出现。但它们需要以某种形式出现在代码中。


for 循环示例

示例 1

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

软件包 main
导入(“fmt”)

函数main(){
对于 i :=0; i < 5; i++ {
fmt.Println(i)
  }
}

结果:

0
1
2
3
4
亲自尝试 »

示例 1 解释

  • i:=0; - 初始化循环计数器(i),并将起始值设置为 0
  • i < 5; - 只要 i 小于 5,就继续循环
  • i++ - 每次迭代将循环计数器的值增加 1

示例 2

此示例以十为单位数到 100:

软件包 main
导入(“fmt”)

函数main(){
对于 i := 0;i <= 100;i + = 10 {
fmt.Println(i)
  }
}

结果:

0
10
20
30
40
50
60
70
80
90
100
亲自尝试 »

示例 2 解释

  • i:=0; - 初始化循环计数器(i),并将起始值设置为 0
  • i <= 100; - 只要 i 小于或等于 100,就继续循环
  • i+=10 - 每次迭代将循环计数器的值增加 10

continue 语句

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

例子

此示例跳过值 3:

软件包 main
导入(“fmt”)

函数main(){
对于 i :=0; i < 5; i++ {
如果我 == 3 {
继续
    }
fmt.Println(i)
  }
}

结果:

0
1
2
4
亲自尝试 »

break 语句

break 语句用于中断/终止循环执行。

例子

此示例在 i 等于 3 时跳出循环:

软件包 main
导入(“fmt”)

函数main(){
对于 i :=0; i < 5; i++ {
如果我 == 3 {
休息
    }
fmt.Println(i)
  }
}

结果:

0
1
2
亲自尝试 »

笔记: continuebreak 通常与状况.


嵌套循环

可以将一个循环放在另一个循环内。

这里,“外循环”每迭代一次,“内循环”就会执行一次:

例子

软件包 main
导入(“fmt”)

函数main(){
adj := [2]string{“big”, “tasty”}
水果:= [3] string {“苹果”,“橙子”,“香蕉”}
对于 i :=0; i < len(adj); i++ {
对于 j :=0; j < len(水果); j++ {
fmt.Println(adj[i],fruits[j])
    }
  }
}

结果:

big apple
big orange
big banana
tasty apple
tasty orange
tasty banana
亲自尝试 »

Range 关键字

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

range 关键字的使用方式如下:

句法

为了 索引,值:=数组||地图 {
   // 每次迭代都要执行的代码
}

例子

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

软件包 main
导入(“fmt”)

函数main(){
水果:= [3] string {“苹果”,“橙子”,“香蕉”}
对于 idx,val := 范围水果{
fmt.Printf("%v\t%v\n", idx, val)
  }
}

结果:

0      apple
1      orange
2      banana
亲自尝试 »

提示: 如果仅显示值或索引,可以使用下划线 (_).

例子

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

软件包 main
导入(“fmt”)

函数main(){
水果:= [3] string {“苹果”,“橙子”,“香蕉”}
对于 _,val := 范围水果{
fmt.Printf("%v\n", val)
  }
}

结果:

apple
orange
banana
亲自尝试 »

例子

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

软件包 main
导入(“fmt”)

函数main(){
水果:= [3] string {“苹果”,“橙子”,“香蕉”}

对于 idx,_ := 范围水果{
fmt.Printf("%v\n", idx)
  }
}

结果:

0
1
2
亲自尝试 »

围棋练习

通过练习测试自己

锻炼:

只要 i 小于 6,就打印 i。

package main
import ("fmt") 
func main() { i:=0; i < 6; { fmt.Println(i) } }