## switch語句 使用switch語句來選擇要執行的多個代碼塊中的一個。 在Go中的switch語句類似於C、C++、Java、JavaScript和PHP中的switch語句。不同之處在於它只執行匹配的case,因此不需要使用break語句。 單一case的switch語法 ```Go sw ...
switch語句
使用switch語句來選擇要執行的多個代碼塊中的一個。
在Go中的switch語句類似於C、C++、Java、JavaScript和PHP中的switch語句。不同之處在於它只執行匹配的case,因此不需要使用break語句。
單一case的switch語法
switch 表達式 {
case x:
// 代碼塊
case y:
// 代碼塊
case z:
// ...
default:
// 代碼塊
}
它的工作方式如下:
- 表達式被評估一次。
- switch表達式的值與每個case的值進行比較。
- 如果匹配,則執行相關的代碼塊。
- 預設關鍵字是可選的。它指定瞭如果沒有匹配的case時要運行的一些代碼。
單一case的switch示例
下麵的示例使用星期幾的數字來計算星期幾的名稱:
package main
import (
"fmt"
)
func main() {
day := 4
switch day {
case 1:
fmt.Println("星期一")
case 2:
fmt.Println("星期二")
case 3:
fmt.Println("星期三")
case 4:
fmt.Println("星期四")
case 5:
fmt.Println("星期五")
case 6:
fmt.Println("星期六")
case 7:
fmt.Println("星期日")
}
}
結果:
星期四
default關鍵字
default關鍵字指定了在沒有匹配的case時要運行的一些代碼:
package main
import (
"fmt"
)
func main() {
day := 8
switch day {
case 1:
fmt.Println("星期一")
case 2:
fmt.Println("星期二")
case 3:
fmt.Println("星期三")
case 4:
fmt.Println("星期四")
case 5:
fmt.Println("星期五")
case 6:
fmt.Println("星期六")
case 7:
fmt.Println("星期日")
default:
fmt.Println("不是工作日")
}
}
結果:
不是工作日
所有case值應與switch表達式具有相同的類型。否則,編譯器將引發錯誤。
package main
import (
"fmt"
)
func main() {
a := 3
switch a {
case 1:
fmt.Println("a是一")
case "b":
fmt.Println("a是b")
}
}
結果:
./prog.go:11:2: 無法將類型為untyped string的"b"用作int類型
多個值的switch語句
在switch語句中,每個case可以有多個值:
語法
switch 表達式 {
case x, y:
// 代碼塊(如果表達式的值是x或y)
case v, w:
// 代碼塊(如果表達式的值是v或w)
case z:
// ...
default:
// 代碼塊(如果表達式在任何case中都沒有找到)
}
多個值的switch示例
下麵的示例使用星期幾的數字返回不同的文本:
package main
import (
"fmt"
)
func main() {
day := 5
switch day {
case 1, 3, 5:
fmt.Println("奇數工作日")
case 2, 4:
fmt.Println("偶數工作日")
case 6, 7:
fmt.Println("周末")
default:
fmt.Println("無效的日期編號")
}
}
結果:
奇數工作日
最後
為了方便其他設備和平臺的小伙伴觀看往期文章,鏈接奉上:
公眾號搜索Let us Coding
,知乎,開源中國,CSDN,思否,掘金,InfoQ,簡書,博客園,慕課,51CTO,helloworld,騰訊開發者社區,阿裡開發者社區
看完如果覺得有幫助,歡迎點贊、收藏和關註