2.3 流程与函数.pdfVIP

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

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档