Golang for循环的用法(非常详细,附带实例)
在编写程序时经常会遇到一些具有规律性的重复操作,在满足条件的情况下重复执行某些语句,就是循环结构。
Go 语言中的循环结构只支持 for 循环。for 循环语句也称为计次循环语句,一般用于循环次数已知的情况。
for 循环语句的基本语法格式如下:
for 循环语句执行的过程是:执行初始化语句,判断循环条件,如果循环条件的结果为 true,则执行一次循环体,否则直接退出循环,通过更新表达式改变变量的值,至此完成一次循环;接下来进行下一次循环,直到循环条件的结果为 false,才结束循环。
for 循环语句的执行流程如下图所示:

图 1 for循环语句的执行流程
例如,使用 for 语句输出 1~5 等 5 个数字,代码如下:
【实例】计算 100 以内所有偶数的和。使用 for 循环语句计算 100 以内所有偶数的和,并在页面中输出计算后的结果。代码如下:
在 for 循环中嵌套 for 循环,代码如下:
Go 语言中的循环结构只支持 for 循环。for 循环语句也称为计次循环语句,一般用于循环次数已知的情况。
for 循环语句的基本语法格式如下:
for 初始化表达式; 条件表达式; 更新表达式 { 语句 }参数说明如下:
- 初始化表达式:初始化语句,用来对变量进行初始化赋值;
- 条件表达式:循环条件,一个包含关系运算符的表达式,控制是否继续执行循环;
- 更新表达式:用来改变变量的值,控制循环的次数,通常是对变量进行增大或减小的操作;
- 语句:用来指定循环体,在循环条件的结果为 true 时,重复执行。
for 循环语句执行的过程是:执行初始化语句,判断循环条件,如果循环条件的结果为 true,则执行一次循环体,否则直接退出循环,通过更新表达式改变变量的值,至此完成一次循环;接下来进行下一次循环,直到循环条件的结果为 false,才结束循环。
for 循环语句的执行流程如下图所示:

图 1 for循环语句的执行流程
例如,使用 for 语句输出 1~5 等 5 个数字,代码如下:
package main import "fmt" func main() { for i := 1; i <= 5; i+++ { fmt.Println(i) } }运行结果如下:
1
2
3
4
5
Go语言for循环的多种用法
在实际应用中,除了基本使用格式,for 循环还有几种使用格式,分别如下:1) 初始化语句写在for循环之外
例如,将上述示例按这种格式进行修改,代码如下:package main import "fmt" func main() { i := 1 for ; i <= 5; i+++ { fmt.Println(i) } }在上述代码中,在 for 循环前定义初始化语句,for 循环中没有初始化语句,此时变量 i 的作用域比在 for 循环中定义时要大。
注意,使用这种格式的 for 循环语句,初始化语句之后的分号必须要写。
2) 将更新表达式放在循环体中
例如,将上述示例修改成这种格式,代码如下:package main import "fmt" func main() { for i := 1; i <= 5; { fmt.Println(i) i++ } }在上述代码中,变量 i 也是在 for 循环中定义并初始化,同时也设置了循环条件,但是变量 i 的更新表达式是在循环体中设置的。这种方式可以更加灵活地控制循环次数。
3) 只设置循环条件
例如,将上述示例按这种格式进行修改,代码如下:package main import "fmt" func main() { var i int = 1 for i <= 5 { fmt.Println(i) i++ } }在上述代码中,在 for 关键字后只设置了循环条件,在 for 循环之外定义和初始化了变量 i,在循环体中设置了变量 i 的更新表达式。这种方式可以使 for 循环和循环之外的代码实现关联。
4) 不设置任何条件
这种格式适用于无限循环的情况,程序将无休止地循环下去。跳出循环可以使用 break 关键字。示例代码如下:package main import "fmt" func main() { var i int = 1 for { fmt.Println(i) if i >= 5 { break } i++ } }虽然 Go语言只支持 for 循环语句,但是使用 for 语句可以实现多种循环方式,在实际开发中可以根据需要灵活使用。
【实例】计算 100 以内所有偶数的和。使用 for 循环语句计算 100 以内所有偶数的和,并在页面中输出计算后的结果。代码如下:
package main import "fmt" func main() { sum := 0 // 保存和的变量 for i := 2; i <= 100; i += 2 { sum = sum + i // 计算 100 以内所有偶数之和 } fmt.Printf("100 以内所有偶数的和为:%d", sum) // 输出计算结果 }运行结果如下:
100以内所有偶数的和为:2550
Go语言for循环嵌套
循环嵌套就是在一个循环语句的循环体中包含其他的循环语句。最常用的是在 for 循环中嵌套 for 循环。在 for 循环中嵌套 for 循环,代码如下:
package main import "fmt" func main() { for i := 1; i <= 5; i+++ { fmt.Print("第", i, "次循环:") for j := 1; j <= 5; j+++ { fmt.Print(j, " ") } fmt.Print("\n") } }运行结果如下:
第1次循环:1 2 3 4 5
第2次循环:1 2 3 4 5
第3次循环:1 2 3 4 5
第4次循环:1 2 3 4 5
第5次循环:1 2 3 4 5