2020 重学 Go 系列:10. Go语言流程控制:if-else​ 条件语句

网友投稿 273 2022-06-14


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("已经成年了")

    } 

}

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

&&:表示且,左右都需要为true,最终结果才能为 true,否则为 false

||:表示或,左右只要有一个为true,最终结果即为true,否则 为 false

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("已经成年了")

    }

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:2020 重学 Go 系列:09. 一篇文章理解 Go 里的函数(2020年高考人数)
下一篇:Micro In Action(三):调用服务(microsoft官网)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~