- 0
- 0
- 约1.06万字
- 约 13页
- 2017-06-19 发布于湖北
- 举报
2.3 流程和函数
这⼩节我们要介绍Go⾥⾯的流程控制以及函数操作。
流程控制
流程控制在编程语⾔中是最伟⼤的 明了,因为有了它,你可以通过很简单的流程描
述来表达很复杂的逻辑。Go 中流程控制分三⼤类:条件判断,循环控制和⽆条件跳
转。
if
if也许是各种编程语⾔中最常见的了,它的语法概括起来就是:如果满⾜条件就做某
事,否则做另⼀件事。
Go⾥⾯if条件判断语句中不需要括号,如下代码所⽰
if x 10 {
fmt.Println(x is greater than 10)
} else {
fmt.Println(x is less than 10)
}
Go的if还有⼀个强⼤的地⽅就是条件判断语句⾥⾯允许声明⼀个变量,这个变量的
作⽤域只能在该条件逻辑块内,其他地⽅就不起作⽤了,如下所⽰
// 计算获取值x,然后根据x返回的⼤⼩,判断是否⼤于10。
if x := comp tedVal e(); x 10 {
fmt.Println(x is greater than 10)
} else {
fmt.Println(x is less than 10)
}
//这个地⽅如果这样调⽤就 译出错了,因为x是条件⾥⾯的变量
fmt.Println(x)
多个条件的时候如下所⽰:
if integer == 3 {
fmt.Println(The integer is eq al to 3)
} else if integer 3 {
fmt.Println(The integer is less than 3)
} else {
fmt.Println(The integer is greater than 3)
}
goto
Go有goto语句——请明智地使⽤它。⽤goto跳转到必须在当前函数内定义的标签。
例如假设这样⼀个循环:
f nc myF nc() {
i := 0
Here: //这⾏的第⼀个词,以冒号结束作为标签
println(i)
i++
goto Here //跳转到Here去
}
标签名是⼤⼩写敏感的。
for
Go⾥⾯最强⼤的⼀个控制逻辑就是for,它即可以⽤来循环读取数据,又可以当
作while来控制逻辑,还能迭代操作。它的语法如下:
for expression1; expression2; expression3 {
// ...
}
expression1、expression2和expression3都是表达式,其中expression1
和expression3是变量声明或者函数调⽤返回值之类的,expression2是⽤来条件
判断,expression1在循环开始之前调⽤,expression3在每轮循环结束之时调
⽤。
⼀个例⼦⽐上⾯讲那么多更有⽤,那么我们看看下⾯的例⼦吧:
package main
import fmt
f nc main(){
s m := 0;
for index :=0; index 10 ; index++ {
s m += index
}
fmt.Println(s m is eq al to , s m)
}
// 输出:s m is eq al to 45
有些时候需要进⾏多个赋值操作,由于Go⾥⾯没有,操作符,那么可以使⽤平⾏赋
值i, j = i+1, j-1
有些时候如果我们忽略expression1和expression3:
s m := 1
for ; s m 1000; {
s m += s m
}
其中;也可以省略,那么就变成如下的代码了,是不是似曾相识?对,这就是while
的功能。
s m := 1
for s m 1000 {
s m += s m
}
在循环⾥⾯有两个关键操作break和contin e ,break操作是跳出当前循
环,contin e是跳过本次循环。当嵌套过深的时候,break可以配合标签使⽤,即
跳转⾄标签所指定的位置,详细参考如下例⼦:
for index := 10; index0; index-- {
if index == 5{
break // 或者contin e
}
fmt.Println(index)
}
原创力文档

文档评论(0)