switch支持初始化語(yǔ)句鞋仍,注意要用分號(hào)結(jié)束。后跟條件表達(dá)式搅吁,如果省略條件表達(dá)式威创,默認(rèn)為true。不需要顯式執(zhí)行break語(yǔ)句谎懦,case執(zhí)行完畢后自動(dòng)中斷肚豺。多個(gè)匹配條件,其中一個(gè)條件符合即可党瓮。case執(zhí)行中斷后,如果需要繼續(xù)執(zhí)行下一個(gè)case塊的內(nèi)容盐类,在下一個(gè)case塊結(jié)尾執(zhí)行fallthrough并且可以在fallthrough前使用break語(yǔ)句阻止寞奸。但不繼續(xù)后續(xù)case塊。
package main
import (
"fmt"
)
func main() {
// 簡(jiǎn)單聲明幾個(gè)變量
a, b, c, d := 1, 2, 3, 4
switch x := 2; x { // switch支持初始化語(yǔ)句在跳,注意要用分號(hào)結(jié)束枪萄。后跟條件表達(dá)式,如果省略條件表達(dá)式猫妙,默認(rèn)為true瓷翻。
case a:
fmt.Println("a")
// break // 不需要顯示執(zhí)行break語(yǔ)句,case執(zhí)行完畢后自動(dòng)終端割坠。
case a, b: // 多個(gè)匹配條件齐帚,其中一個(gè)條件符合即可。
fmt.Println("b")
fallthrough // case執(zhí)行中斷后彼哼,如果需要繼續(xù)執(zhí)行下一個(gè)case塊的內(nèi)容对妄,在下一個(gè)case塊結(jié)尾執(zhí)行fallthrough并且可以在fallthrough前使用break語(yǔ)句阻止。但不繼續(xù)繼續(xù)后續(xù)case塊敢朱。
case c:
fmt.Println("c")
case d:
fmt.Println("d")
case 5:
fmt.Println("e")
//case 5, 6: // 支持常量剪菱,但不能出現(xiàn)重復(fù)常量
// fmt.Println("f")
default:
fmt.Println("x") // 只有全部匹配失敗后摩瞎,才會(huì)執(zhí)行default塊。
}
}