# Go 语言 for 循环
for循环是一个循环控制结构,可以执行指定次数的循环。
### 语法
Go语言的For循环油3中形式,只有其中的一种使用分号。
和 C 语言的 for 一样:
```
for init; condition; post { }
```
和 C 的 while 一样:
```
for condition { }
```
和 C 的 for(;;) 一样:
```
for { }
```
* init: 一般为赋值表达式,给控制变量赋初值;
* condition: 关系表达式或逻辑表达式,循环控制条件;
* post: 一般为赋值表达式,给控制变量增量或减量。
for语句执行过程如下:
* ①先对表达式1赋初值;
* ②判别赋值表达式 init 是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:
```
for key, value := range oldMap {
newMap[key] = value
}
```
for语句语法流程如下图所示:
![](https://box.kancloud.cn/2015-12-29_5682353a0660e.jpg)
### 实例
```
package main
import "fmt"
func main() {
var b int = 15
var a int
numbers := [6]int{1, 2, 3, 5}
/* for 循环 */
for a := 0; a < 10; a++ {
fmt.Printf("a 的值为: %d\n", a)
}
for a < b {
a++
fmt.Printf("a 的值为: %d\n", a)
}
for i,x:= range numbers {
fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
}
}
```
以上实例运行输出结果为:
```
a 的值为: 0
a 的值为: 1
a 的值为: 2
a 的值为: 3
a 的值为: 4
a 的值为: 5
a 的值为: 6
a 的值为: 7
a 的值为: 8
a 的值为: 9
a 的值为: 1
a 的值为: 2
a 的值为: 3
a 的值为: 4
a 的值为: 5
a 的值为: 6
a 的值为: 7
a 的值为: 8
a 的值为: 9
a 的值为: 10
a 的值为: 11
a 的值为: 12
a 的值为: 13
a 的值为: 14
a 的值为: 15
第 0 位 x 的值 = 1
第 1 位 x 的值 = 2
第 2 位 x 的值 = 3
第 3 位 x 的值 = 5
第 4 位 x 的值 = 0
第 5 位 x 的值 = 0
```
- Go 语言简介
- Go 语言环境安装
- Go 语言结构
- Go 语言基础语法
- Go 语言数据类型
- Go 语言变量
- Go 语言常量
- Go 语言运算符
- Go 语言条件语句
- Go 语言 if 语句
- Go 语言 if...else 语句
- Go 语言 if 语句嵌套
- Go 语言 switch 语句
- Go 语言 select 语句
- Go 语言循环语句
- Go 语言 for 循环
- Go 语言循环嵌套
- Go 语言 break 语句
- Go 语言 continue 语句
- Go 语言 goto 语句
- Go 语言函数
- Go 语言函数值传递值
- Go 语言函数引用传递值
- Go 语言函数作为值
- Go 语言函数闭包
- Go 语言函数方法
- Go 语言变量作用域
- Go 语言数组
- Go 语言多维数组
- Go 语言向函数传递数组
- Go 语言指针
- Go 语言指针数组
- Go 语言指向指针的指针
- Go 语言指针作为函数参数
- Go 语言结构体
- Go 语言切片(Slice)
- Go 语言范围(Range)
- Go 语言Map(集合)
- Go 语言递归函数
- Go 语言类型转换
- Go 语言接口
- Go 错误处理
- Go 语言开发工具