Go 语言中switch case条件分支语句

发布于:2025-06-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

1. 基本语法

package main
import "fmt"
func main() {
    var extname = ".css"
    switch extname {
    case ".html":
        fmt.Println("text/html")
    case ".css":
        fmt.Println("text/css") // text/css
    case ".js":
        fmt.Println("text/javaScript")
    default:
        fmt.Println("找不到此后缀")
    }
}

2. 条件前可以写表达式

package main
import "fmt"
func main() {
    switch extname := ".html"; extname {
    case ".html":
        fmt.Println("text/html") // text/html
    case ".css":
        fmt.Println("text/css")
    case ".js":
        fmt.Println("text/javascript")
    default:
        fmt.Println("找不到此后缀")
    }
    // 注意 extname 只能在switch语句中访问
    fmt.Println(extname) 
    //undefined: extname
}

3. 一个分支可以有多个值

package main
import "fmt"
func main() {
    var score = "D" 
    switch score {
    case "A", "B", "C":
        fmt.Println("及格")
    case "D":
        fmt.Println("不及格") // 不及格
    }
}

4. 分支可以写表达式

package main
import "fmt"
func main() {
    var age = 18
    switch {
    case age < 24:
        fmt.Println("好好学习") // 好好学习
    case age >= 24 && age <= 60:
        fmt.Println("好好赚钱")
    case age > 60:
        fmt.Println("注意身体")
    default:
        fmt.Println("输入错误")
    }
}

5. 条件穿透语句

在C语言中 switch 语句中必须添加 break,否则会进行条件穿透,而在Go 语言中的 switch 语句中不用添加 break,也不会产生条件穿透,但是如果需要条件穿透时可以加上 fallthrough。

package main
import "fmt"
func main() {
    var age = 30
    switch {
    case age < 24:
        fmt.Println("好好学习")
    case age >= 24 && age <= 60:
        fmt.Println("好好赚钱") // 好好赚钱
        fallthrough
    case age > 60:
        fmt.Println("注意身体") // 注意身体
    default:
        fmt.Println("输入错误")
    }
}