首页 > 编程笔记 > Go语言笔记 阅读:9

Go语言if else语句的用法(非常详细)

程序之所以能按照开发者的想法执行,是因为程序中存在着控制语句。通过控制语句能够改变程序执行的轨迹。

Go 语言中的控制语句分为条件判断语句和循环语句两类:
Go 语言中的条件判断语句主要包括两种,第一种是 if 语句,第二种是 switch 语句。其中,应用最广泛的是 if 语句。

if 语句是最基本、最常用的条件判断语句,通过判断条件表达式的值确定是否执行一段语句,或者选择执行哪部分语句。if语句分为简单if语句、if else 语句、if else if else 语句和 if 嵌套语句几种形式。

Go语言if语句

简单 if 语句的语法格式如下:
if 表达式{
    语句
}
参数说明如下:
简单 if 语句的执行流程如下图所示:


图 1 简单 if 语句的执行流程

在简单 if 语句中,首先判断表达式的值,如果值是 true,则执行相应的语句,否则不执行。

例如,根据比较两个变量的值,判断是否输出比较结果。代码如下:
package main

import "fmt"

func main(){
    var m int = 20  //定义变量m,值为20
    var n int = 10  //定义变量n,值为10
    if m > n {     //判断变量m的值是否大于变量n的值
        fmt.Println("m大于n")  //输出m大于n
    }
    if m < n {     //判断变量m的值是否小于变量n的值
        fmt.Println("m小于n")  //输出m小于n
    }
}
运行结果如下:

m大于n


【实例】获取 3 个数中的最大值。将 3 个数字 56、76、96 分别定义在变量中,应用简单 if 语句获取这 3 个数中的最大值。代码如下:
package main

import "fmt"

func main(){
    var a, b, c, maxValue int  //声明变量
    a = 56  //为变量a赋值
    b = 76  //为变量b赋值
    c = 96  //为变量c赋值
    maxValue = a  //假设a的值最大,定义a为最大值
    if maxValue < b {  //如果最大值小于b
        maxValue = b  //定义b为最大值
    }
    if maxValue < c {  //如果最大值小于c
        maxValue = c  //定义c为最大值
    }
    fmt.Printf("%d、%d、%d等3个数的最大值为%d", a, b, c, maxValue)  //输出结果
}
运行结果如下:

56、76、96等3个数的最大值为96

Go语言if else语句

在简单 if 语句的基础上增加一个可选的 else 语句,当表达式的值是 false 时,执行 else 语句中的内容。

if else 语句的语法格式如下:
if 表达式 {
    语句1
}else{
    语句2
}
表达式用于指定条件表达式,可以使用逻辑运算符。

if else 语句的执行流程如下图所示:


图 2 if else语句的执行流程

在 if else 语句中,首先判断表达式的值,如果是 true,则执行语句 1 中的内容,否则执行语句 2 中的内容。

例如,根据比较两个变量的值,输出比较的结果。代码如下:
package main

import "fmt"

func main(){
    var m int = 10  //定义变量m,值为10
    var n int = 20  //定义变量n,值为20
    if m > n{     //判断变量m的值是否大于变量n的值
        fmt.Printf("m大于n")  //输出m大于n
    }else{
        fmt.Printf("m小于或等于n")  //输出m小于或等于n
    }
}
运行结果为:

m小于或等于n


【实例】判断2023 年 2 月的天数。如果某一年是闰年,那么这一年的 2 月就有 29 天,否则这一年的 2 月只有 28 天。应用 if else 语句判断 2023 年 2 月的天数。代码如下:
package main

import "fmt"

func main(){
    var year int = 2023  //定义变量
    var month int = 0    //定义变量
    if (year%4 == 0 && year%100 != 0) || year%400 == 0 {  //判断指定年是否为闰年
        month = 29  //为变量赋值
    }else{
        month = 28
    }
    fmt.Printf("2023年2月的天数为%d天", month)  //输出结果
}
运行结果如下:

2023年2月的天数为28天

Go语言if else if else语句

if 语句是一种很灵活的语句,除了 if else 的形式,还有 if else if else 的形式。这种形式可以进行更多的条件判断,不同条件对应不同的语句。

if else if else 语句的语法格式如下:
if 表达式1{
    语句1
}else if 表达式2{
    语句2
}
...
}else if 表达式n{
    语句n
}else{
    语句n+1
}

if else if else语句的执行流程如下图所示:


图 3 if else if else语句的执行流程

【实例】判断空气质量状况。空气污染指数(air pollution index,API)是评估空气质量状况的一组数字,空气质量状况的判断标准如下。
假设某城市今天的空气污染指数为 76,判断该城市的空气质量状况。代码如下:
package main

import "fmt"

func main(){
    var api int = 76  //定义空气污染指数
    var result string  //定义判断结果
    if api >= 0 && api <= 100 {
        result = "良好"
    }else if api >= 101 && api <= 200 {
        result = "轻度污染"
    }else if api >= 201 && api <= 300 {
        result = "中度污染"
    }else{
        result = "重度污染"
    }
    fmt.Printf("空气质量状况:%s" + result)  //输出空气质量状况
}
运行结果如下:

空气质量状况:良好

Go语言if嵌套语句

if 语句不但可以单独使用,还可以嵌套应用,即在 if else if else 语句中嵌套其他 if 语句。基本语法格式如下:
if 表达式1{
    if 表达式2{
        语句1
    }else{
        语句2
    }
}else{
    if 表达式3{
        语句3
    }else{
        语句4
    }
}
在使用 if 语句进行条件判断时,应尽量避免使用过多的 if 嵌套语句,过多的 if 嵌套语句不但会使代码冗余,而且不利于程序的维护。

【实例】判断年龄段。使用 if 嵌套语句判断 25 岁处在哪个年龄段。已知年龄在 18 岁以下为未成年,年满 18 岁为成年。其中,年龄在 0~6 岁属于儿童,年龄在 7~17 岁属于少年,年龄在 18~40 岁属于青年,年龄在 41~65 岁属于中年,年龄在 66 岁以上属于老年。代码如下:
package main

import "fmt"

func main(){
    var age int = 25  //定义年龄
    var ageGroup string  //定义判断结果
    if age < 18 {
        if age >= 0 && age <= 6 {
            ageGroup = "儿童"
        }else{
            ageGroup = "少年"
        }
    }else{
        if age >= 18 && age <= 40 {
            ageGroup = "青年"
        }else if age >= 41 && age <= 65 {
            ageGroup = "中年"
        }else{
            ageGroup = "老年"
        }
    }
    fmt.Printf(fmt.Sprintf("%d岁正处在%s时期", age) + ageGroup + "时期")  //输出结果
}
运行结果如下:

25岁正处在青年时期

相关文章