Go的学习路程:条件流程控制|Go 主题月

77 阅读2分钟

上一篇文章学习了 Go 安装及 “hello world” 程序。现在开始学习 Go 的条件语句。

条件语句

条件语句是根据表达式值来执行代码块的控制结构。条件表达式的值必须为布尔类型。并且左花括号可以省略但不可以换行。

if

if 是最简单的条件语句。表达的意思是“如果表达式值为真,则执行代码块,否则不执行。”

package main
import "fmt"
func main() {
    fmt.Println("hi, boy")
    var weight = 100
    if weight > 80 {
        fmt.Println("哦, 你应该减肥了")
    }
}

运行结果如下

gorunif.png

当把 weight 修改小于 80,就不会输出 “哦,你应该减肥了”

if...else...

if...else... 控制结构在 if 控制结构的基础上添加如果表达式值为假,则执行的代码块。表达的意思类似于“如果你的现金大于 100 元,那么就去下馆子。否则就回家吃饭”。

package main
import "fmt"
func main () {
    var money = 5
    if money > 100 {
        fmt.Println("下馆子去")
    } else {
        fmt.Println("还是乖乖回家吃饭")
    }
}

运行结果如下

gorunifelse.png

switch

switch 与 if 类似,也是用于选择执行,但是具体使用场景不同。

switch 中有 case 与 default。其中 case 当条件与 case 中的一个或多个匹配时,则执行该 case 的代码块。default 与 if...else... 中的 else 作用类似。当 switch 中所有的 case 都不匹配的情况下执行。

package main
import "fmt"
func main () {
    var age = 2
    switch age {
    case 1:
        fmt.Println("这是一只小猫咪")
    case 2:
        fmt.Println("这是一只成年猫咪")
    case 3:
        fmt.Println("这是一只正值壮年的猫咪")
    default:
        fmt.Println("我也不知道这是一只什么猫咪")
    }
}

由于 age 的值为 2 与 case 2 匹配,所以程序会输出“这是一只成年猫咪”,运行结果如下

gorunswitch1.png

当 age 的值与所有的 case 都不匹配的情况下,就会执行 default 的代码块,程序输出“我也不知道这是一只什么猫咪”。

package main
import "fmt"
func main () {
    var age = 0

    switch age {
    case 1:
        fmt.Println("这是一只小猫咪")
    case 2:
        fmt.Println("这是一只成年猫咪")
    case 3:
        fmt.Println("这是一只正值壮年的猫咪")
    default:
        fmt.Println("我也不知道这是一只什么猫咪")
    }
}

gorunswitch2.png