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

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。

**系列导读 **

从零学习 Go 语言(01):一文搞定开发环境的搭建

从零学习 Go 语言(02):学习五种变量创建的方法

从零学习 Go 语言(03):数据类型之整型与浮点型

从零学习 Go 语言(04):byte、rune与字符串

从零学习 Go 语言(05):数据类型之数组与切片

从零学习 Go 语言(06):数据类型之字典与布尔类型

从零学习 Go 语言(07):数据类型之指针

1.8 流程控制:if-else

1. 条件语句模型

Go里的流程控制方法还是挺丰富,整理了下有如下这么多种:

  • if - else 条件语句
  • switch - case 选择语句
  • for - range 循环语句
  • goto 无条件跳转语句
  • defer 延迟执行

今天先来讲讲 if-else 条件语句

Go 里的条件语句模型是这样的

if 条件 1 {
  分支 1
} else if 条件 2 {
  分支 2
} else if 条件 ... {
  分支 ...
} else {
  分支 else
}

Go编译器,对于 {} 的位置有严格的要求,它要求 else if (或 else)和 两边的花括号,必须在同一行。

由于 Go是 强类型,所以要求你条件表达式必须严格返回布尔型的数据(nil 和 0 和 1 都不行,具体可查看《详解数据类型:字典与布尔类型》)。

对于这个模型,分别举几个例子来看一下。

2. 单分支判断

只有一个 if ,没有 else

import "fmt"

func main() {
	age := 20
	if age > 18 {
		fmt.Println("已经成年了")
	} 
}

如果条件里需要满足多个条件,可以使用 &&||

&&
||
import "fmt"

func main() {
	age := 20
	gender := "male"
	if (age > 18 && gender == "male") {
		fmt.Println("是成年男性")
	}
}

3. 多分支判断

if - else

import "fmt"

func main() {
	age := 20
	if age > 18 {
		fmt.Println("已经成年了")
	} else {
		fmt.Println("还未成年")
	}
}

if - else if - else

import "fmt"

func main() {
	age := 20
	if age > 18 {
		fmt.Println("已经成年了")
	} else if age >12 {
		fmt.Println("已经是青少年了")
	} else {
		fmt.Println("还不是青少年")
	}
}

4. 高级写法

在 if 里可以允许先运行一个表达式,取得变量后,再对其进行判断,比如第一个例子里代码也可以写成这样

import "fmt"

func main() {
	if age := 20;age > 18 {
		fmt.Println("已经成年了")
	}
}

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章