进行循环


这个forLoop 循环执行一段代码指定的次数。

这个forLoop 是 Go 中唯一可用的循环。


进行循环

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

循环的每次执行称为迭代

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

语法

for statement1; statement2; statement3 {
   // code to be executed for each iteration
}

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

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

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

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


for 循环示例

示例1

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

package main
import ("fmt")

func main() {
  for i:=0; i < 5; i++ {
    fmt.Println(i)
  }
}

结果:

0
1
2
3
4
亲自试一试 »

示例 1 解释

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

示例2

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

package main
import ("fmt")

func main() {
  for i:=0; i <= 100; i+=10 {
    fmt.Println(i)
  }
}

结果:

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

示例 2 解释

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


继续语句

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

示例

此示例跳过值 3:

package main
import ("fmt")

func main() {
  for i:=0; i < 5; i++ {
    if i == 3 {
      continue
    }
   fmt.Println(i)
  }
}

结果:

0
1
2
4
亲自试一试 »

中断语句

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

示例

当 i 等于 3 时,此示例将跳出循环:

package main
import ("fmt")

func main() {
  for i:=0; i < 5; i++ {
    if i == 3 {
      break
    }
   fmt.Println(i)
  }
}

结果:

0
1
2
亲自试一试 »

笔记:continuebreak通常与条件


嵌套循环

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

此处,"inner loop" 将在 "outer loop" 的每次迭代中执行一次:

示例

package main
import ("fmt")

func main() {
  adj := [2]string{"big", "tasty"}
  fruits := [3]string{"apple", "orange", "banana"}
  for i:=0; i < len(adj); i++ {
    for j:=0; j < len(fruits); j++ {
      fmt.Println(adj[i],fruits[j])
    }
  }
}

结果:

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

范围关键字

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

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

语法

for index, value := array| slice| map {
   // code to be executed for each iteration
}

示例

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

package main
import ("fmt")

func main() {
  fruits := [3]string{"apple", "orange", "banana"}
  for idx, val := range fruits {
     fmt.Printf("%v\t%v\n", idx, val)
  }
}

结果:

0      apple
1      orange
2      banana
亲自试一试 »

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

示例

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

package main
import ("fmt")

func main() {
  fruits := [3]string{"apple", "orange", "banana"}
  for _, val := range fruits {
     fmt.Printf("%v\n", val)
  }
}

结果:

apple
orange
banana
亲自试一试 »

示例

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

package main
import ("fmt")

func main() {
  fruits := [3]string{"apple", "orange", "banana"}

  for idx, _ := range fruits {
     fmt.Printf("%v\n", idx)
  }
}

结果:

0
1
2
亲自试一试 »

围棋练习

通过练习测试一下

练习:

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

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

开始练习