文章永久连接:https://tech.souyunku.com/?p=5330
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、 先对表达式1 赋初值
2、 判断赋值表达式 init 是否满足给定条件:
1. 若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition
2. 否则判断 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: 搜云库技术团队(tech.souyunku.com)
* Copyright © 2015-2065 tech.souyunku.com. 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
干货推荐
附录:GOlang 教程:系列文章
- 一、Go 语言基础教程
- 二、Go 语言 – 简介
- 三、Go 语言环境配置
- 四、Go 语言结构
- 五、Go 语言基础语法
- 六、Go 语言数据类型
- 七、Go 语言变量
- 八、Go 语言常量
- 九、Go 语言运算符
- 十、Go 语言条件语句
- 十一、Go 语言循环语句
- 十二、Go 语言函数
- 十三、Go 语言 – 变量作用域
- 十四、Go 语言 – 数组
- 十五、Go 语言 – 字符串
- 十六、Go 语言 – 指针
- 十七、Go 语言 – 结构体
- 十八、Go 语言 – 数据类型 interface
- 十九、Go 语言 – 切片(slice)
- 二十、Go 语言 – 哈希表(map)
- 二十一、Go 语言 – range 关键字
- 二十二、Go 语言 – 关键字 delete
- 二十三、Go 语言递归函数
- 二十四、Go 语言 – 类型转换
- 二十五、Go 语言 – 错误处理
- 二十六、Go 语言 – 开发工具
- 【当前读到】二十七、Go 语言 for 循环语句
- 二十八、Go 语言 – 多维数组
- 二十九、Go 语言 break 语句
- 三十、Go 语言 – 指向指针的指针
- 三十一、Go 语言 – 指针作为函数参数
- 三十二、Go 语言 goto 语句
- 三十三、Go 语言 if 语句
- 三十四、Go 语言函数值传递调用
- 三十五、Go 语言 for 循环嵌套
- 三十六、Go 语言 – 向函数传递数组
- 三十七、Go 语言 – 函数 – 引用传值
- 三十八、Go 语言 select 语句
- 三十九、Go 语言 if…else 语句
- 四十、Go 语言 switch 语句
- 四十一、Go 语言 – 闭包函数
- 四十二、Go 语言指针数组
- 四十三、Go 语言 if 语句嵌套
- 四十四、Go 语言 – 函数作为值
- 四十五、Go 语言函数方法
- 四十六、Go 语言 continue 语句