Go 语言基础 - if-else

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语句适用于对一个表达式进行多重条件判断、进行多重条件匹配和执行多种选择中的一种操作。

在实际编程中,应该根据不同的需求选择不同的条件语句。

后端开发标签