Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Golang switch语句总结大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

switch 语句基本结构

switch 条件表达式 {
case 常量表达式1:
    语句 1
case 常量表达式2:
    语句 2
    .
    .
    .
case 常量表达式n:
    语句 n
default:
    语句 n+1
}

执行流程

(1)计算条件表达式的值value

(2)如果value满足某条case语句,则执行该语句,执行完跳出switch语句

(3)如果value不满足所有的case语句:

? (3.1)如果有default,则执行该语句,执行完跳出switch语句

? (3.2)如果没有default,则直接跳出switch语句

注意事项

(1)条件表达式可以是任意Go语言支持的数据类型

(3)不需要break语句

(4)default分支为可选项,但最多只能一个default分支

(5)如果有两个以上的case分支的常量表达式取得相同的值,则编译会出错

多case语句

有时在一条case语句中可以对多个条件值进行测试,任意一个条件满足都会执行case语句体

func main() {
    var test String
    fmt.Print("请输入一个字符串:")
    fmt.Scan(&test)
    switch test {
    case "c":
        fmt.Println("c")
    case "java":
        fmt.Println("java")
    case "go","golang":
        fmt.Println("Hello golang")
    default:
        fmt.Println("python")
    }
}
// 请输入一个字符串:go
// Hello golang

// 请输入一个字符串:golang
// Hello golang

fallthrough语句

通常情况下,switch语句检测到符合条件的第一个case语句,就会执行该分支的代码,执行完会直接跳出switch语句。使用 fallthrough 语句,可以在执行完该case语句后,不跳出,继续执行一个case语句。

func main() {
    var test String
    fmt.Print("请输入一个字符串:")
    fmt.Scan(&test)
    switch test {
    case "go":
        fmt.Println("Hello go")
    case "golang":
        fmt.Println("Hello golang")
        fallthrough
    case "gopher":
        fmt.Println("Hello gopher")
    case "java":
        fmt.Println("java")
    }
}
// 请输入一个字符串:go
// Hello go

// 请输入一个字符串:golang
// Hello golang
// Hello gopher

无条件表达式switch语句

如果switch关键字后面没有条件表达式,则必须在case语句中进行条件判断,即类似于 if else if 语句

func main() {
    var score int
    fmt.Print("请输入成绩:")
    fmt.Scan(&score)
    switch {
    case score >= 90:
        fmt.Println("good")
    case score >= 80 && score < 90:
        fmt.Println("well")
    case score < 80:
        fmt.Println("ok")
    }
}
// 请输入成绩:60
// ok

// 请输入成绩:85
// well

小结

平时写Go语言很少用到switch语句,有时候突然用到,一些细节可能又忘了,所以写一篇博客总结一下。

大佬总结

以上是大佬教程为你收集整理的Golang switch语句总结全部内容,希望文章能够帮你解决Golang switch语句总结所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。