二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题:Go 语言 for 循环语句
Go 语言 for 循环语句是一个循环控制结构,可以执行指定次数的循环
语法
Go 语言的 for循环有 3 种形式,但只有其中的一种使用分号
1. 和 C 语言 的 for 一样
for init; condition; post { }2. 和 C 语言的 while 语句 一样
for condition { }3. 和 C 的 for(;;) 一样
for { }上面 3 种 for 语句中
- init: 一般为赋值表达式,给控制变量赋初值
- condition: 关系表达式或逻辑表达式,循环控制条件
- post: 一般为赋值表达式,给控制变量增量或减量
for语句执行过程如下
- 先对表达式1 赋初值
判断赋值表达式 init 是否满足给定条件:
- 若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition
- 否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句
for...range 语句
for 循环的 range 语句可以对 slice、map、数组、字符串等进行迭代循环
语法
for...range 语句语法格式如下
for key, value := range oldMap { newMap[key] = value }for 语句流程图
Go 语言 for 语句执行流程如下
范例
/** * file: main.go * author: 简单教程(www.twle.cn) * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ package main import "fmt" func main() { var b int = 9 var a int numbers := [6]int{1, 2, 3, 5} /* for 循环 */ for a := 0; a < 5; a++ { fmt.Printf("a 的值为: %d\n", a) } println("----------------------------") for a < b { a++ fmt.Printf("a 的值为: %d\n", a) } for i,x:= range numbers { fmt.Printf("第 %d 位 x 的值 = %d\n", i,x) } }编译运行以上 Go 范例,输出结果如下
$ go run main.go a 的值为: 0 a 的值为: 1 a 的值为: 2 a 的值为: 3 a 的值为: 4 ---------------------------- a 的值为: 5 a 的值为: 6 a 的值为: 7 a 的值为: 8 第 0 位 x 的值 = 1 第 1 位 x 的值 = 2 第 2 位 x 的值 = 3 第 3 位 x 的值 = 5 第 4 位 x 的值 = 0 第 5 位 x 的值 = 0