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
可以提高代码的可读性,特别是在需要做多个条件判断时,能够简化代码结构。接下来,我们将进入函数部分,讨论函数的定义和调用
,继续我们的学习旅程。