Go语言if else语句的用法(非常详细)
程序之所以能按照开发者的想法执行,是因为程序中存在着控制语句。通过控制语句能够改变程序执行的轨迹。
Go 语言中的控制语句分为条件判断语句和循环语句两类:
Go 语言中的条件判断语句主要包括两种,第一种是 if 语句,第二种是 switch 语句。其中,应用最广泛的是 if 语句。
if 语句是最基本、最常用的条件判断语句,通过判断条件表达式的值确定是否执行一段语句,或者选择执行哪部分语句。if语句分为简单if语句、if else 语句、if else if else 语句和 if 嵌套语句几种形式。
简单 if 语句的执行流程如下图所示:

图 1 简单 if 语句的执行流程
在简单 if 语句中,首先判断表达式的值,如果值是 true,则执行相应的语句,否则不执行。
例如,根据比较两个变量的值,判断是否输出比较结果。代码如下:
【实例】获取 3 个数中的最大值。将 3 个数字 56、76、96 分别定义在变量中,应用简单 if 语句获取这 3 个数中的最大值。代码如下:
if else 语句的语法格式如下:
if else 语句的执行流程如下图所示:

图 2 if else语句的执行流程
在 if else 语句中,首先判断表达式的值,如果是 true,则执行语句 1 中的内容,否则执行语句 2 中的内容。
例如,根据比较两个变量的值,输出比较的结果。代码如下:
【实例】判断2023 年 2 月的天数。如果某一年是闰年,那么这一年的 2 月就有 29 天,否则这一年的 2 月只有 28 天。应用 if else 语句判断 2023 年 2 月的天数。代码如下:
if else if else 语句的语法格式如下:
if else if else语句的执行流程如下图所示:

图 3 if else if else语句的执行流程
【实例】判断空气质量状况。空气污染指数(air pollution index,API)是评估空气质量状况的一组数字,空气质量状况的判断标准如下。
假设某城市今天的空气污染指数为 76,判断该城市的空气质量状况。代码如下:
【实例】判断年龄段。使用 if 嵌套语句判断 25 岁处在哪个年龄段。已知年龄在 18 岁以下为未成年,年满 18 岁为成年。其中,年龄在 0~6 岁属于儿童,年龄在 7~17 岁属于少年,年龄在 18~40 岁属于青年,年龄在 41~65 岁属于中年,年龄在 66 岁以上属于老年。代码如下:
Go 语言中的控制语句分为条件判断语句和循环语句两类:
- 条件判断语句是根据判断的结果(真或假)来决定执行哪段语句序列;
- 循环语句是在满足一定条件下,反复执行一段语句序列。
Go 语言中的条件判断语句主要包括两种,第一种是 if 语句,第二种是 switch 语句。其中,应用最广泛的是 if 语句。
if 语句是最基本、最常用的条件判断语句,通过判断条件表达式的值确定是否执行一段语句,或者选择执行哪部分语句。if语句分为简单if语句、if else 语句、if else if else 语句和 if 嵌套语句几种形式。
Go语言if语句
简单 if 语句的语法格式如下:if 表达式{ 语句 }参数说明如下:
- 表达式:用于指定条件表达式,可以使用逻辑运算符;
- 语句:当表达式的值为 true 时执行的语句。
简单 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)是评估空气质量状况的一组数字,空气质量状况的判断标准如下。
- 空气污染指数为 0~100 属于良好;
- 空气污染指数为 101~200 属于轻度污染;
- 空气污染指数为 201~300 属于中度污染;
- 空气污染指数大于 300 属于重度污染。
假设某城市今天的空气污染指数为 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岁正处在青年时期