Go for 循环

在编程中,循环用于重复执行一段代码。例如,

如果我们想打印一个语句100次,而不是写100次相同的打印语句,我们可以使用循环来执行相同的代码100次。

这只是一个简单的例子;我们使用 for 循环来清理和简化复杂的程序。


Golang for 循环

在Golang中,我们使用 for 循环重复执行一段代码,直到满足指定的条件。

这是Golang中 for 循环的语法。

for initialization; condition; update {
  statement(s)
}

这里,

  1. 初始化部分初始化和/或声明变量,并且只执行一次。
  2. 然后,评估条件。如果条件为 true,则执行 for 循环的主体。
  3. 更新部分更新初始化的值。
  4. 再次评估条件。该过程一直持续到条件为 false
  5. 如果条件false,则 for 循环结束。

for 循环的工作原理

Working of for loop in Golang programming
Go 中 for 循环的流程图

示例 1:Golang for 循环

// Program to print the first 5 natural numbers

package main
import "fmt"

func main() {

  // for loop terminates when i becomes 6
for i := 1; i <= 5; i++ { fmt.Println(i) }
}

输出

1
2
3
4
5

以下是此程序的运行方式。

迭代 变量 条件:i操作
第 1 次 i = 1 true 打印 1
i 增加到 2
第 2 次 i = 2 true 打印 2
i 增加到 3
第 3 次 i = 3 true 打印 3
i 增加到 4
第 4 次 i = 4 true 打印 4
i 增加到 5
第 5 个 i = 5 true 打印 5
i 增加到 6
第 6 个 i = 6 false 循环终止。

示例 2:Golang for 循环

// Program to print numbers for natural numbers 1 + 2 + 3 + ... +n

package main
import "fmt"

func main() {
  var n, sum = 10, 0
  
  for i := 1 ; i <= n; i++ {
    sum += i    // sum = sum + i  
  }

  fmt.Println("sum =", sum)
}

输出

sum = 55

在这里,我们使用 for 循环迭代从 i 等于 1 到 10。

在循环的每次迭代中,我们将 i 的值加到 sum 变量上。


相关的 Golang for 循环主题

Golang for 循环的 range 形式

在 Go 中,我们可以将 range 与 for 循环一起使用来迭代数组。例如,

package main
import "fmt"
 
func main() {
 
  // create an array
  numbers := [5] int {11, 22, 33, 44, 55}

// for loop with range for item := range numbers { fmt.Println(numbers[item]) }
}

输出

11
22
33
44
55

在这里,我们使用 range 迭代了 5 次(数组的大小)。

在第一次迭代中,item 的值是 11,第二次迭代是 22,依此类推。

要了解有关数组的更多信息,请访问 Golang 数组

将 Golang for 循环用作 while 循环

在 Golang 中,for 循环也可以用作 while 循环(与其他语言一样)。例如,

for condition {
  statement(s)
}

这里,for 循环只包含测试条件。并且,循环执行直到条件为 true。当条件为 false 时,循环终止。

什么是无限循环?

永远不会终止的循环称为无限循环。

如果循环的测试条件永远不评估为 true,则循环将永远继续。例如,

// Program to infinitely iterate through the loop

package main
import "fmt"

func main() {

  for i := 0; i <= 10; i-- {
    fmt.Println("Welcome to Programiz")
  }

}

这里,条件 i <= 10 永远不会评估为 false,从而导致无限循环。

输出

Welcome to Programiz
Welcome to Programiz
Welcome to Programiz
…

如果我们想有意创建无限循环,Golang 为此提供了一种相对简单的语法。让我们以上面的例子为例。

// Program to infinitely iterate through the loop

package main
import "fmt"

func main() {

  // for loop without initialization/condition/update
  // infinite loop
  for {
    fmt.Println("Welcome to Programiz")
  }

}
Golang for 循环中的空标识符。

在 Golang 中,我们必须使用在 for 循环主体内声明的每个变量。如果未使用,它将引发错误。我们使用空标识符 _ 来避免此错误。

让我们通过以下场景来理解它。

  numbers := [5] int {11, 22, 33, 44, 55}

  // index variable is declared but not used
  for index, item := range numbers {
    // throws an error
    fmt.Println(item)
  }

}

在这里,我们收到错误消息 **index declared but not used**(索引已声明但未使用)。

为避免此问题,我们将 _ 放在第一个位置,以表示我们不需要数组的第一个组件(index)。让我们用空标识符纠正上面的例子。

// Program to print the elements of the array

package main
import "fmt"
 
func main() {
 
  numbers := [5] int {11, 22, 33, 44, 55}
for _, item := range numbers { fmt.Println(item) }
}

输出

11
22
33
44
55

在这里,程序知道 item 表示数组的第二部分。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战