Menu
×
   ❮   
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 循环


The for loop loops through a block of code a specified number of times.

The for loop is the only loop available in Go.


Go for 循环

循环在您想要反复运行相同的代码时非常方便,每次都使用不同的值。

每次执行循环称为一次 **迭代**。

The for loop can take up to three statements

语法

for statement1; statement2; statement3 {
  // 要在每次迭代中执行的代码
}

statement1 初始化循环计数器值。

statement2 在每次循环迭代中进行评估。如果评估结果为 TRUE,则循环继续。如果评估结果为 FALSE,则循环结束。

statement3 增加循环计数器值。

注意:这些语句不必作为循环参数存在。但是,它们需要以某种形式存在于代码中。


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

此示例以十为单位计数到 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 语句

The continue statement is used to skip one or more iterations in the loop. It then continues with the next iteration in the loop.

示例

此示例跳过值 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 语句

The break statement is used to break/terminate the loop execution.

示例

此示例在 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 关键字

The range keyword is used to more easily iterate through the elements of an array, slice or map. It returns both the index and the value.

The range keyword is used like this

语法

for index, value := range array|slice|map {
  // 要在每次迭代中执行的代码
}

示例

此示例使用 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) } }

开始练习


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.