流程控制语句
Go语言和Java特别相似,包括流程控制语句,主要有以下几种:
for、if、else、switch、defer。
一、for
Go 只有一种循环结构:for 循环。
基本的 for 循环由三部分组成,它们用分号隔开:
初始化语句:在第一次迭代前执行
条件表达式:在每次迭代前求值
后置语句:在每次迭代的结尾执行
初始化语句通常为一句短变量声明,该变量声明仅在 for 语句的作用域中可见。
一旦条件表达式的布尔值为 false,循环迭代就会终止。
- 注意:和 C、Java、JavaScript 之类的语言不同,Go 的 for 语句后面没有小括号,大括号 { } 则是必须的。
1.下面来看一个普通for例子
package main
import "fmt"
/**
* for后面没有小括号
* i := 0 这个为初始化语句(在第一次迭代前执行)
* i < 10 条件表达式(在每次迭代前求值)
* i++ 后置语句(在每次迭代的结尾执行)
*/
func main() {
sum := 0
for i := 0; i <= 10; i++ {
//下面这个i是指i的初始化值
//例如i := 9时,i++等于10,sum = 0+1+......+9(注意这里是9而不是10)
//当i := 10时,i++等于11,sum = 0+1+......+10(注意这里是10而不是11)
//当i := 11时,就结束了循环
sum += i
}
fmt.Println(sum)
}
输出语句:
55
2. 再来看一个初始化和后置语句可选的例子
初始化语句和后置语句是可选的。
package main
import "fmt"
func main() {
sum := 1
//首先sum=1
//sum = 1 + 1 = 2
//sum = 2 + 2 = 4
//sum = 4 + 4 =8
//sum = 8 + 8 = 16 结束循环
for ; sum < 10; {
sum += sum
//sum = sum + sum
}
fmt.Println(sum)
//输出结果16
}
二、for 是 Go 中的 “while”
此时你可以去掉分号,因为 C 的 while 在 Go 中叫做 for。
下面来看一个例子
package main
import "fmt"
func main() {
sum := 1
//for相当于while
for