1. Go 语言中的条件语句
Go 语言中有两种条件语句:if语句和switch语句。
其中if语句的基本格式为:
if condition {
// if condition is true
} else {
// if condition is false
}
其中condition为一个bool类型的表达式,当condition的值为true时,执行if代码块中的语句,否则执行else代码块中的语句。
下面通过一个示例来详细介绍if语句的使用。
1.1 示例代码
下面是一个简单的示例,实现了从控制台输入一个数字n,判断其正负,并输出相应的提示信息。
func main() {
var n int
fmt.Print("请输入一个整数:")
fmt.Scan(&n)
if n > 0 {
fmt.Println("这个数字是正数")
} else if n < 0 {
fmt.Println("这个数字是负数")
} else {
fmt.Println("这个数字是零")
}
}
在上面的代码中,我们使用fmt.Scan函数从控制台输入一个整数n,并使用if语句判断n的正负,并输出相应的提示信息。
如果n大于0,那么就执行if代码块中的语句,即输出"这个数字是正数";如果n小于0,则执行第一个else if代码块中的语句,即输出"这个数字是负数";如果n等于0,则执行第二个else代码块中的语句,即输出"这个数字是零"。
1.2 if语句中的多个条件判断
在Go语言中,if语句中的条件表达式可以使用逻辑运算符进行组合,比如&&(与)、||(或)等。
下面是一个示例代码,用于判断一个数字是否在10到20的范围内:
func main() {
var n int
fmt.Print("请输入一个整数:")
fmt.Scan(&n)
if n >= 10 && n <= 20 {
fmt.Println("这个数字在10到20之间")
} else {
fmt.Println("这个数字不在10到20之间")
}
}
在上面的代码中,我们使用了逻辑运算符&&(与)将两个条件表达式连接起来,从而判断n是否在10到20的范围内。
如果n在10到20之间,那么就执行if代码块中的语句,即输出"这个数字在10到20之间";否则执行else代码块中的语句,即输出"这个数字不在10到20之间"。
2. switch语句
Go语言中的另一种条件语句是switch语句,它的格式如下:
switch expression {
case value1:
// do something
case value2:
// do something
default:
// do something
}
其中expression为要匹配的表达式,value1、value2等为表达式的值。当expression的值等于某个值时,就会执行对应的case代码块中的语句。
如果没有任何一个case既匹配又符合表达式的结果,则执行default语句块中的代码(可选)。
下面通过一个示例来详细介绍switch语句的使用。
2.1 示例代码
下面是一个示例代码,实现了根据输入的数字n,输出相应的星期几:
func main() {
var n int
fmt.Print("请输入一个数字(1-7):")
fmt.Scan(&n)
switch n {
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("输入的数字不正确")
}
}
在上面的代码中,我们使用fmt.Scan函数从控制台输入一个数字n,并使用switch语句判断n所代表的星期,输出相应的信息。
在switch语句中,我们使用n作为表达式,当n等于1时,就会执行第一个case代码块中的语句,即输出"星期一";当n等于2时,就会执行第二个case代码块中的语句,即输出"星期二",以此类推。
如果n不等于1到7中的任何一个数字,则会执行default代码块中的语句,即输出"输入的数字不正确"。
2.2 switch语句中的case多选
在switch语句中,我们还可以使用多个case语句共用一个代码块,以实现“多选”的效果,如下所示:
func main() {
var n int
fmt.Print("请输入一个数字(1-3):")
fmt.Scan(&n)
switch n {
case 1, 2:
fmt.Println("输入的数字是1或2")
case 3:
fmt.Println("输入的数字是3")
default:
fmt.Println("输入的数字不正确")
}
}
在上面的代码中,我们使用了1和2共用一个case代码块,以实现“多选”的效果。
当n等于1或2时,就会执行case 1, 2代码块中的语句(即输出"输入的数字是1或2");当n等于3时,就会执行第二个case代码块中的语句,即输出"输入的数字是3"。
如果n不等于1到3中的任何一个数字,则会执行default代码块中的语句,即输出"输入的数字不正确"。
3. if-else和switch的比较
在Go语言中,if-else语句和switch语句可以互相替代,但是在某些情况下,使用switch语句会更加简洁易懂。
通常情况下,if-else语句适用于以下场景:
当需要同时判断多个条件时,可以使用if-else语句;
当需要根据不同的条件执行不同的操作时,可以使用if-else语句;
当需要进行范围匹配或多重条件匹配时,可以使用if-else语句。
而switch语句适用于以下场景:
当需要对一个表达式进行多重条件判断时,可以使用switch语句;
当需要进行多重条件匹配时,可以使用switch语句;
当需要执行多种选择中的一种时,可以使用switch语句。
下面是一个使用if-else语句实现的示例代码,用于判断一个数字n是否是偶数:
func main() {
var n int
fmt.Print("请输入一个整数:")
fmt.Scan(&n)
if n % 2 == 0 {
fmt.Println("这个数字是偶数")
} else {
fmt.Println("这个数字是奇数")
}
}
而下面是使用switch语句实现的同样的功能:
func main() {
var n int
fmt.Print("请输入一个整数:")
fmt.Scan(&n)
switch n % 2 {
case 0:
fmt.Println("这个数字是偶数")
default:
fmt.Println("这个数字是奇数")
}
}
可以看到,使用switch语句会更加简洁明了。
4. 总结
在本文中,我们介绍了Go语言中的两种条件语句:if语句和switch语句,讲解了它们的用法和区别:
if-else语句适用于同时判断多个条件、根据不同的条件执行不同的操作和进行范围匹配或多重条件匹配;
switch语句适用于对一个表达式进行多重条件判断、进行多重条件匹配和执行多种选择中的一种操作。
在实际编程中,应该根据不同的需求选择不同的条件语句。