首页 文章资讯内容详情

Golang switch语句总结

2026-06-01 4 花语

本文内容纲要:

-switch语句基本结构 -多case语句 -fallthrough语句 -无条件表达式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语句体

funcmain(){ varteststring fmt.Print("请输入一个字符串:") fmt.Scan(&test) switchtest{ case"c": fmt.Println("c") case"java": fmt.Println("java") case"go","golang": fmt.Println("hellogolang") default: fmt.Println("python") } } //请输入一个字符串:go //hellogolang //请输入一个字符串:golang //hellogolang

fallthrough语句

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

funcmain(){ varteststring fmt.Print("请输入一个字符串:") fmt.Scan(&test) switchtest{ case"go": fmt.Println("hellogo") case"golang": fmt.Println("hellogolang") fallthrough case"gopher": fmt.Println("hellogopher") case"java": fmt.Println("java") } } //请输入一个字符串:go //hellogo //请输入一个字符串:golang //hellogolang //hellogopher

无条件表达式switch语句

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

funcmain(){ varscoreint fmt.Print("请输入成绩:") fmt.Scan(&score) switch{ casescore>=90: fmt.Println("good") casescore>=80&&score<90: fmt.Println("well") casescore<80: fmt.Println("ok") } } //请输入成绩:60 //ok //请输入成绩:85 //well

小结

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

本文内容总结:switch语句基本结构,多case语句,fallthrough语句,无条件表达式switch语句,小结,

原文链接:https://www.cnblogs.com/yahuian/p/11615408.html