go語言中fallthrough用法
阿新 • • 發佈:2019-02-04
switch sExpr {
case expr1:
some instructions
case expr2:
some other instructions
case expr3:
some other instructions
default:
other code
}
sExpr和expr1、expr2、expr3的型別必須一致。Go的switch非常靈活,表示式不必是常量或整數,執行的過程從上至下,直到找到匹配項;而如果switch沒有表示式,它會匹配true。 Go裡面switch預設相當於每個case最後帶有break,匹配成功後不會自動向下執行其他case,而是跳出整個switch, 但是可以使用fallthrough強制執行後面的case程式碼,fallthrough不會判斷下一條case的expr結果是否為true。
package main
import "fmt"
func main() {
switch {
case false:
fmt.Println("The integer was <= 4")
fallthrough
case true:
fmt.Println("The integer was <= 5")
fallthrough
case false:
fmt.Println("The integer was <= 6" )
fallthrough
case true:
fmt.Println("The integer was <= 7")
case false:
fmt.Println("The integer was <= 8")
fallthrough
default:
fmt.Println("default case")
}
}
執行結果:
The integer was <= 5
The integer was <= 6
The integer was <= 7
從本例可以看出:switch人第一個expr為true的case開始執行,如果case帶有fallthrough,程式會繼續執行下一條case,不會再判斷下一條case的expr,如果之後的case都有fallthrough,default出會被執行。