php
<?php
$k = 6;
switch($k){
case 4:
var_dump("was <= 4");
case 5:
var_dump("was <= 5");
case 6:
var_dump("was <= 6");
case 7:
var_dump("was <= 7");
case 8:
var_dump("was <= 8");
default:
var_dump("default case");
}
?>
output
string(8) “was <= 6”
string(8) “was <= 7”
string(8) “was <= 8”
string(12) “default case”
加上break
<?php
$k = 6;
switch($k){
case 4:
var_dump("was <= 4");
break;
case 5:
var_dump("was <= 5");
break;
case 6:
var_dump("was <= 6");
break;
case 7:
var_dump("was <= 7");
break;
case 8:
var_dump("was <= 8");
break;
default:
var_dump("default case");
}
?>
output
string(8) “was <= 6”
go
package main
import (
"fmt"
)
type byte uint8
func main() {
te()
}
func te() {
k := 6
switch k {
case 4:
fmt.Println("was <= 4")
case 5:
fmt.Println("was <= 5")
case 6:
fmt.Println("was <= 6")
case 7:
fmt.Println("was <= 7")
case 8:
fmt.Println("was <= 8")
default:
fmt.Println("default case")
}
}
output
was <= 6
加上fallthrough
package main
import (
"fmt"
)
type byte uint8
func main() {
te()
}
func te() {
k := 6
switch k {
case 4:
fmt.Println("was <= 4")
fallthrough
case 5:
fmt.Println("was <= 5")
fallthrough
case 6:
fmt.Println("was <= 6")
fallthrough
case 7:
fmt.Println("was <= 7")
fallthrough
case 8:
fmt.Println("was <= 8")
fallthrough
default:
fmt.Println("default case")
}
}
output
was <= 6
was <= 7
was <= 8
default case
總結
- go中加上了默認break,匹配到對應case,在執行完相應代碼後就會退出整個 switch 代碼塊
- go中用fallthrough關鍵字繼續執行後續分支的代碼