Jupyter AI

14 控制结构之switch语句

📅 发表日期: 2024年8月11日

分类: 🐹Go 语言入门

👁️阅读: --

在前一篇中,我们详细探讨了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语句的特点

  1. 省略表达式switch语句可以不指定表达式,默认情况下,它将仅对true进行匹配。

    switch {
    case number < 5:
        fmt.Println("数字小于 5")
    case number < 10:
        fmt.Println("数字小于 10")
    default:
        fmt.Println("数字是 10 或更大")
    }
    
  2. 多个条件:多个条件可以在同一个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 的范围内")
    }
}

在上面的代码中,如果number2,程序将输出:

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