在编程中,循环用于重复执行一段代码。例如,
如果我们想打印一个语句100次,而不是写100次相同的打印语句,我们可以使用循环来执行相同的代码100次。
这只是一个简单的例子;我们使用 for
循环来清理和简化复杂的程序。
Golang for 循环
在Golang中,我们使用 for
循环重复执行一段代码,直到满足指定的条件。
这是Golang中 for
循环的语法。
for initialization; condition; update {
statement(s)
}
这里,
- 初始化部分初始化和/或声明变量,并且只执行一次。
- 然后,评估条件。如果条件为
true
,则执行 for 循环的主体。 - 更新部分更新初始化的值。
- 再次评估条件。该过程一直持续到条件为
false
。 - 如果条件为
false
,则 for 循环结束。
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 循环主题
在 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
循环(与其他语言一样)。例如,
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
循环主体内声明的每个变量。如果未使用,它将引发错误。我们使用空标识符 _
来避免此错误。
让我们通过以下场景来理解它。
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 表示数组的第二部分。