14 控制结构之switch语句
在前一篇中,我们详细探讨了for循环的使用与实现。在本篇中,我们将深入了解Go语言中的另一重要控制结构——switch语句。switch语句提供了一种便捷的多分支选择方式,是替代多个if-else语句的理想选择。
switch语句的基本语法
Go语言的switch语句的基本结构如下:
switch expression {
case value1:
// 执行语句
case value2:
// 执行语句
default:
// 执行语句
}
在这个结构中,expression是被测试的表达式,case后面跟的是可能的值。如果某个case中的值与expression的结果匹配,则会执行该case下面的语句块。如果没有匹配的值,且定义了default,则执行default中的语句。
示例:基本的 switch 用法
以下是一个简单的例子,展示了如何使用switch语句来判断数字的范围:
package main
import (
"fmt"
)
func main() {
number := 2
switch number {
case 1:
fmt.Println("数字是 1")
case 2:
fmt.Println("数字是 2")
case 3:
fmt.Println("数字是 3")
default:
fmt.Println("数字不在 1 到 3 的范围内")
}
}
在这个例子中,变量number的值为2,程序会输出数字是 2。
switch语句的特点
-
省略表达式:
switch语句可以不指定表达式,默认情况下,它将仅对true进行匹配。switch { case number < 5: fmt.Println("数字小于 5") case number < 10: fmt.Println("数字小于 10") default: fmt.Println("数字是 10 或更大") } -
多个条件:多个条件可以在同一个
case中用逗号分隔。switch number { case 1, 2, 3: fmt.Println("数字是 1、2 或 3") default: fmt.Println("其他数字") }
fallthrough语句
在Go语言中,switch语句的一个独特之处是,switch语句的case不会自动fall through到下一个case。如果你希望在匹配某个case后继续执行下一个case的代码,需要使用fallthrough关键字。
package main
import (
"fmt"
)
func main() {
number := 2
switch number {
case 1:
fmt.Println("数字是 1")
case 2:
fmt.Println("数字是 2")
fallthrough
case 3:
fmt.Println("这是一个介于 2 和 3 之间的数字")
default:
fmt.Println("数字不在 1 到 3 的范围内")
}
}
在上面的代码中,如果number是2,程序将输出:
数字是 2
这是一个介于 2 和 3 之间的数字
switch语句应用实例
我们可以将switch语句用于多种场合,如对输入进行处理。以下是一个示例程序,根据输入的月份输出该月份的季节:
package main
import (
"fmt"
)
func main() {
month := 4 // 你可以试试从 1 到 12 的其他月份
switch month {
case 12, 1, 2:
fmt.Println("冬季")
case 3, 4, 5:
fmt.Println("春季")
case 6, 7, 8:
fmt.Println("夏季")
case 9, 10, 11:
fmt.Println("秋季")
default:
fmt.Println("无效的月份")
}
}
输入的月份为4时,输出为春季。
结束语
在本篇中,我们深入学习了Go语言中的switch语句,了解了它的基本用法及特点。使用switch可以提高代码的可读性,特别是在需要做多个条件判断时,能够简化代码结构。接下来,我们将进入函数部分,讨论函数的定义和调用,继续我们的学习旅程。
