- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.3 流程和函数.pdf
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)