3.2 循环语句
有的时候,我们可能需要多次执行同一块程序代码。在Go程序中,通过使用循环语句可以多次执行指定的程序。在本节的内容中,将详细讲解Go 语言循环语句的知识。
3.2.1 使用for循环语句
与其他大多数编程语言不同的是,Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do…while 结构,关键字 for 的基本使用方法与C语言和 C++ 中非常接近。在R程序中,for循环语句是一种重复控制结构,可以让开发者有效地编写一个需要执行特定次数的循环。
在R程序中,有如下三种使用for语句的语法格式:
(1)第1种:和C语言的for循环一样,具体格式如下:
for init;condition;
post { }
(2)第2种:和C语言的while循环一样,具体格式如下:
for condition { }
(3)和 C语言的的 for(;;) 一样,具体格式如下:
for { }
对上述格式的具体说明如下:
- init:一般为赋值表达式,给控制变量赋初值;
- condition:关系表达式或逻辑表达式,循环控制条件;
- post:一般为赋值表达式,给控制变量增量或减量。
先判断赋值表达式 init 是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判断condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。
实例3-6:计算1到100的整数和(源码路径:Go-codes\3\sum.go)
例文件sum.go的具体实现代码如下所示。
package main
import "fmt"
func main() {
sum := 0
for i := 0; i <= 100; i++ {
sum += i
}
fmt.Println(sum)
}
在上述代码中,循环条件是i <= 100,只要满足这个条件,就执行for循环体中的代码“sum += i”。执行后会输出:
5050
注意:如果循环中条件语句永远不为 false 则会进行无限循环,我们可以通过 for 循环语句中只设置一个条件表达式来执行无限循环,例如:
package main
import "fmt"
func main() {
for true {
fmt.Printf("这是无限循环。\n");
}
}
3.2.2 使用for循环嵌套语句
在Go程序中可以使用for循环嵌套语句,也就是允许在一个for循环语句中使用另外一个for循环语句。具体语法格式如下:
package main
import "fmt"
func main() {
// 遍历, 决定处理第几行
for y := 1; y <= 9; y++ {
// 遍历, 决定这一行有多少列
for x := 1; x <= y; x++ {
fmt.Printf("%d*%d=%d ", x, y, x*y)
}
// 手动生成回车
fmt.Println()
}
}
实例3-7:打印输出九九乘法表(源码路径:Go-codes\3\cheng.go)
例文件cheng.go的具体实现代码如下所示。
package main
import "fmt"
func main() {
// 遍历, 决定处理第几行
for y := 1; y <= 9; y++ {
// 遍历, 决定这一行有多少列
for x := 1; x <= y; x++ {
fmt.Printf("%d*%d=%d ", x, y, x*y)
}
// 手动生成回车
fmt.Println()
}
}
执行后会输出:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81