菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Go For 循环


for 循环会循环执行一段代码指定的次数。

Go 语言中唯一的循环语句是 for 循环。


Go For 循环

如果您想反复运行相同的代码,每次使用不同的值,循环会非常方便。

循环的每次执行称为一次迭代

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

语法

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

语句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 解释

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

示例 2

此示例以 10 为步长计数到 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 解释

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


continue 语句

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 语句

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 通常与条件一起使用。


嵌套循环

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

在这里,“内循环”将在“外循环”的每次迭代中执行一次

示例

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 关键字用于更方便地遍历数组、切片或映射的元素。它返回索引和值。

range 关键字的使用方式如下

语法

for 索引, 值 := range 数组|切片|映射 {
  // 每次迭代要执行的代码
}

示例

此示例使用 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
自己动手试一试 »

Go 练习

通过练习来测试自己

练习

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

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

开始练习


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持