Go语言条件语句
Go语言的条件语句有 if
和 switch
两种。
而且Go语言的表达式,可以不用跟 括号( )
, 比如 if a > 10 { ... }
下面来介绍这两种条件语句
1. if 条件语句
条件语句需要开发者指定一个或者多个条件
条件为 true
,执行相应的操作
条件为 false
,执行另外的操作
如下
package main import "fmt" func main() { number := 10 // 假设这个数为 10 if number > 0 { fmt.Println("这个数是正数") } else if number < 0 { fmt.Println("这个数是负数") } else { fmt.Println("这个数是零") } }
1.1 单个 if 条件
if
语句后面跟一个或者多个表达式。
语法如下:
if 表达式 { // 表达式为 true 时执行的操作 }
注意:
- if 后的表达式,没有
( )
- 每个条件的
{ }
是必须的,哪怕只有一行代码
示例如下:
package main import "fmt" func main() { score := 70 if score > 60 { fmt.Println("及格了") } } //输出: 及格了
上面的例子只有单个条件,如果 score 小于 60 ,想打印“没有及格”,可以用 if ... esle
语句
1.2 if … else… 语句
if ... else...
语句,在条件为 true
时,执行 if
后面的操作,条件为 false
时,执行 else
后面的操作
语法如下:
if 条件 { //条件成立时的操作 } else { //条件不成立时的操作 }
示例:还是上面的例子
package main import "fmt" func main() { score := 40 if score > 60 { fmt.Println("及格了") } else { fmt.Println("没有及格") } } //输出:没有及格
注意:
else
后面的{
不能独占一行,否则编译不过。正确的格式
if ... { } else { }
1.3 if …else if … else… 语句
这种情况就是有多个条件,分别测试每个条件是否为 true
,如果某个条件为 true
,执行相应的操作,后面的条件不再判断
如果所有的条件都不成立,就执行 else
操作
语法如下:
if 条件1 { 操作1 } else if 条件2 { 操作2 } else if 条件N { 操作N } else { 都不满足,执行此操作 }
示例如下:
package main import "fmt" func main() { day := 5 if day == 1 { fmt.Println("星期一") } else if day == 2 { fmt.Println("星期二") } else if day == 3 { fmt.Println("星期三") } else if day == 4 { fmt.Println("星期四") } else if day == 5 { fmt.Println("星期五") } else if day == 6 { fmt.Println("星期六") } else if day == 7 { fmt.Println("星期天") } else { fmt.Println("输入有误") } } //输出: 星期五
2 switch 条件语句
switch
语句基于不同的条件执行不同的case
操作,每个case
都是唯一的,从上至下依次测试,直到匹配为止
switch
语句从上至下依次匹配,匹配成功后,跳出 switch
语句,不会再匹配后面的case
,所以不用在每个 case
后面添加break
因为 Go语言的 switch
语句,是自带 break
的
语法如下:
switch variable { case value1: ... case value2: ... case valueN: ... default: ... }
示例如下:
我们把上面的 打印星期几的例子改造一下,如下:
package main import "fmt" func main() { day := 5 switch day { case 1: fmt.Println("星期一") case 2: fmt.Println("星期二") case 3: fmt.Println("星期三") case 4: fmt.Println("星期四") case 5: fmt.Println("星期五") case 6: fmt.Println("星期六") case 7: fmt.Println("星期天") default: fmt.Println("输入有误") } } //输出:星期五
2.1 switch支持多条件匹配
switch
语句后面跟 case
, case
后面跟上值,上面的例子,后面只有一个值
case
后面也是可以跟多个值的,只要满足其中一个,就会执行相应的操作
如果所有的条件都不成立 ,则执行 default
后面的操作
语法如下:
switch { case: 1,3,5: ... case: 2,4,6: ... default: ... }
示例如下:
package main import "fmt" func main() { var n = 6 switch n { case 1, 3, 5: fmt.Println("这是奇数") case 2,4,6: fmt.Println("这是偶数") default: fmt.Println("未知") } } //输出:这是偶数
小结
上面介绍了 Go语言的条件语句,现简单总结如下:
- Go语言条件语句,有两种,分别是
if
和switch
-
if
条件语句有3
种形式-
if
单个条件 -
if...else...
条件 -
if ... else if ... else...
多条件
-
- 表达式不需要添加
( )
- 条件后面的
{ }
是不能省略的,哪怕只有一条语句,也不能省略 -
else
后面的{
不能单独占一行,否则编译报错 -
switch
语句后面可以跟多个case
语句 -
switch
从上至下依次匹配case
,匹配成立后,执行相应的case
语句 -
switch
匹配到case
后,执行相应的操作,之后,不会再匹配下面的case
,所以不用写break
-
switch
的case
后面可以跟上多个值