从零学习 Go 语言(07):流程控制之if-else

hello_wbm · · 1228 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 **系列导读 ** [从零学习 Go 语言(01):一文搞定开发环境的搭建](https://studygolang.com/articles/27365) [从零学习 Go 语言(02):学习五种变量创建的方法](https://studygolang.com/articles/27432) [从零学习 Go 语言(03):数据类型之整型与浮点型](https://studygolang.com/articles/27440) [从零学习 Go 语言(04):byte、rune与字符串](https://studygolang.com/articles/27463) [从零学习 Go 语言(05):数据类型之数组与切片](https://studygolang.com/articles/27508) [从零学习 Go 语言(06):数据类型之字典与布尔类型](https://studygolang.com/articles/27563) [从零学习 Go 语言(07):数据类型之指针](https://studygolang.com/articles/27585) --- # 1.8 流程控制:if-else ## 1. 条件语句模型 Go里的流程控制方法还是挺丰富,整理了下有如下这么多种: - if - else 条件语句 - switch - case 选择语句 - for - range 循环语句 - goto 无条件跳转语句 - defer 延迟执行 今天先来讲讲 if-else 条件语句 Go 里的条件语句模型是这样的 ```go if 条件 1 { 分支 1 } else if 条件 2 { 分支 2 } else if 条件 ... { 分支 ... } else { 分支 else } ``` Go编译器,对于 `{` 和 `}` 的位置有严格的要求,它要求 else if (或 else)和 两边的花括号,必须在同一行。 由于 Go是 强类型,所以要求你条件表达式必须严格返回布尔型的数据(nil 和 0 和 1 都不行,具体可查看《详解数据类型:字典与布尔类型》)。 对于这个模型,分别举几个例子来看一下。 ## 2. 单分支判断 只有一个 if ,没有 else ```go import "fmt" func main() { age := 20 if age > 18 { fmt.Println("已经成年了") } } ``` 如果条件里需要满足多个条件,可以使用 `&&` 和 `||` - `&&`:表示且,左右都需要为true,最终结果才能为 true,否则为 false - `||`:表示或,左右只要有一个为true,最终结果即为true,否则 为 false ```go import "fmt" func main() { age := 20 gender := "male" if (age > 18 && gender == "male") { fmt.Println("是成年男性") } } ``` ## 3. 多分支判断 if - else ```go import "fmt" func main() { age := 20 if age > 18 { fmt.Println("已经成年了") } else { fmt.Println("还未成年") } } ``` if - else if - else ```go import "fmt" func main() { age := 20 if age > 18 { fmt.Println("已经成年了") } else if age >12 { fmt.Println("已经是青少年了") } else { fmt.Println("还不是青少年") } } ``` ## 4. 高级写法 在 if 里可以允许先运行一个表达式,取得变量后,再对其进行判断,比如第一个例子里代码也可以写成这样 ```go import "fmt" func main() { if age := 20;age > 18 { fmt.Println("已经成年了") } } ``` --- ![](http://image.python-online.cn/20200321153457.png)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1228 次点击  
加入收藏 微博
上一篇:leetcode_621
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传