for循环是一个循环控制结构,可以执行指定次数的循环。
三种循环方式
第一种,常见的 for 循环,支持初始化语句
for init; condition; post { }
init: 一般为赋值表达式,给控制变量赋初值;
condition: 关系表达式或逻辑表达式,循环控制条件;
post: 一般为赋值表达式,给控制变量增量或减量。
for语句执行过程如下:
1) 先对表达式 init 赋初值;
2)判别赋值表达式 init 是否满足给定 condition 条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。
package main import ( "fmt" ) func main() { for i := 1; i < 10; i++ { fmt.Println(i) } }
第二种,关系表达式或逻辑表达式控制循环
for condition { }
实例如下:
package main import ( "fmt" ) func main() { i := 0 for i < 5 { i++ } for i == 5 { fmt.Println(i) break } }
第三种,无限循环
for { } for true { }
实例如下:
package main import ( "fmt" "time" ) func main() { for { fmt.Println("无限循环 for {}") time.Sleep(time.Second) } }
循环嵌套
在 for 循环中可以嵌套一个或多个 for 循环,实例如下:
1)使用循环嵌套来输出九九乘法表:
package main import "fmt" func main() { for i := 1; i < 10; i++ { for j := 1; j <= i; j++ { fmt.Printf("%d * %d = %2d ", i, j, i*j) } fmt.Println() } }
2)使用循环嵌套来输出 2 到 100 间的素数:
package main import "fmt" func main() { var i, j int for i = 2; i < 100; i++ { for j = 2; j (i / j) { fmt.Printf("%2d 是素数 ", i) } } }