Go-控制流语句-switch(一)

2023-04-20 17:04:23 浏览数 (1)

Go 语言中的 switch 控制流语句用于根据一个表达式的值,从多个可能的选项中选择一个执行。它的基本语法如下:

代码语言:javascript复制
switch expression {
case value1:
    // 在表达式等于 value1 时执行的代码块
case value2:
    // 在表达式等于 value2 时执行的代码块
default:
    // 在表达式不等于任何一个值时执行的代码块
}

在上面的代码中,expression 是一个表达式,用于进行比较。value1value2 等是可能的选项,用于与表达式进行比较。如果表达式等于其中的一个值,则会执行相应的代码块;否则会执行 default 代码块。

与其他编程语言不同的是,在 Go 中,每个 case 后面不需要显式地使用 break 关键字来终止 switch 语句的执行。如果 case 语句的代码块执行完毕,会自动跳出 switch 语句。

下面是一个示例,演示了如何使用 switch 语句:

代码语言:javascript复制
package main

import "fmt"

func main() {
    x := 2
    switch x {
    case 1:
        fmt.Println("x is 1")
    case 2:
        fmt.Println("x is 2")
    default:
        fmt.Println("x is not 1 or 2")
    }
}

在上面的代码中,我们定义了一个变量 x,并使用 switch 语句根据它的值执行不同的代码块。如果 x 等于 1,就输出一条消息;如果 x 等于 2,就输出另一条消息;否则输出第三条消息。

switch 语句还有一种特殊的写法,可以在 switch 语句中不带表达式。这种写法可以用于替代多个 if-else 语句。其语法如下:

代码语言:javascript复制
switch {
case condition1:
    // 在条件1成立时执行的代码块
case condition2:
    // 在条件2成立时执行的代码块
default:
    // 在所有条件都不成立时执行的代码块
}

在上面的代码中,condition1condition2 等是布尔表达式,用于进行比较。如果其中任何一个成立,就会执行相应的代码块。如果所有条件都不成立,则会执行 default 代码块。

下面是一个示例,演示了如何使用不带表达式的 switch 语句:

代码语言:javascript复制
package main

import "fmt"

func main() {
    x := 10
    switch {
    case x > 5:
        fmt.Println("x is greater than 5")
    case x < 5:
        fmt.Println("x is less than 5")
    default:
        fmt.Println("x is equal to 5")
    }
}

在上面的代码中,我们定义了一个变量 x,并使用不带表达式的 switch 语句根据它的值执行不同的代码块。如果 x 大于 5,就输出一条消息;如果 x 小于 5,就输出另一条消息;否则输出第三条消息。

go

0 人点赞