Golang从入门到精通(六):Golang控制语句之for
2017-12-12 15:12
381 查看
for结构介绍
Go语言只有for循环这一种循环结构。基本的for循环包含三个由分号分开的组成部分:
1.初始化语句:在第一次循环执行前被执行
2.循环条件表达式:每轮迭代开始前被求值
3.后置语句:每轮迭代后被执行
初始化语句一般是一个短变量声明,这里声明的变量仅在整个 for 循环语句可见。
如果条件表达式的值变为 false,那么迭代将终止。
注意:不像 C,Java,或者 Javascript 等其他语言,Go语言中的for循环语句的三个部分不需要用括号括起来,但循环体必须用 { } 括起来。
基于计数器的for循环
基于计数器的迭代,基本形式为:for 初始化语句; 条件语句; 修饰语句 { //循环语句 }
我们用for循环来计算10以内正整数的和。
package main import( "fmt" ) func main() { sum := 0 for i := 0; i < 10; i++ { sum += i } fmt.Println(sum) }
由花括号括起来的代码块会被重复执行已知次数,该次数是根据计数器(此例为 i)决定的。循环开始前,会执行且仅会执行一次初始化语句
i := 0;,这比在循环之前声明更为简短。紧接着的是条件语句
i < 10;,在每次循环开始前都会进行判断,一旦判断结果为 false,则退出循环体。最后一部分为修饰语句
i++,一般用于增加或减少计数器。
这三部分组成的循环的头部,它们之间使用分号 ; 相隔,但并不需要括号 () 将它们括起来。例如:
for (i = 0; i < 10; i++) { } //非法代码!
所示是非法的代码!
和if-else语句类似,for循环中左花括号
{必须和 for 语句在同一行,计数器的生命周期在遇到右花括号
}时便终止。一般习惯使用 i、j、z 或 ix 等较短的名称命名计数器。
基于条件判断的for循环
for 循环的第二种形式是没有头部的条件判断(类似其它语言中的 while 循环),基本形式为:for 条件语句 {}
也可以认为这是没有初始化语句和修饰语句的 for 结构,因此
;;便是多余的了。
我们来写一个基于条件判断的简单for循环,示例代码如下:
package main import "fmt" func main() { var i int = 5 for i >= 0 { i = i - 1 fmt.Printf("The variable i is now: %d\n", i) } }
for-range结构
提到for循环,我们必须再提一下range()这个内置函数,这是 Go 语言特有的一种的迭代结构,它一般用来遍历数组,slice和map等集合。我们用range来遍历一个数组,以下代码会打印出每个值的序号和对应的值。
package main import( "fmt" ) func main() { arr := [...]int{6, 7, 8} for i, v := range arr { fmt.Println(i,v) } }
输出:
0 6 1 7 2 8
无限循环
Go 语言有以下几种无限循环:i:=0; ; i++ for { } for ;; { } for true { }
这些无限循环都是 for 循环的条件语句被省略了。如果 for 循环的头部没有条件语句,那么就会认为条件永远为 true。因此如果不想造成死循环,循环体内必须有相关的条件判断以确保会在某个时刻退出循环。
相关文章推荐
- Golang从入门到精通(七):Golang控制语句之switch
- GoLang学习控制语句之for
- Golang从入门到精通(五):Golang控制语句之if/else
- python 流程控制(for循环语句)
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
- python循环控制语句(for)
- Swift控制语句(if,switch,forin,for,while,dowhile)
- JS:1.2控制语句(if,if else,for,switch,while,do while)
- Golang初级系列教程-控制结构-for-break-continue-range
- Oracle控制语句(if , loop , while , for)
- C#入门篇5-3:流程控制语句 for
- 第十二课:循环控制语句之for
- Golang 笔记 3 if、switch、for、select语句
- Python的控制语句,(if,while,for)之if
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
- awk 控制语句(if for do while)
- matlan 控制语句for while if switch
- Shell脚本入门(九) - 循环控制语句:for in
- Oracle中的几种控制语句if..else,for,loop,while
- Cg(C for Graphic)语言表达式与控制语句