switch { case n >= 90: fmt.Println("优秀") case n >= 75 && n < 90: fmt.Println("良好") case n >= 60 && n < 75: fmt.Println("及格") case n < 60: fmt.Println("不及格") default: fmt.Println("成绩无效") } }
Go 语言中还保留了 fallthrough ,主要是为了兼容 C 语言,fallthrough 可以继续执行满足条件的 case 的下一个 case:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
package main
import"fmt"
funcmain() { s := "a"
switch { case s == "a": fmt.Println("a") fallthrough case s == "b": fmt.Println("b") case s == "c": fmt.Println("c") default: fmt.Println("...") } }
运行结果为:
1 2
a b
break
break 用于主动跳出循环,例如:
1 2 3 4 5 6 7 8 9 10 11 12
package main
import"fmt"
funcmain() { for i := 0; i < 5; i++ { if i == 3 { break } fmt.Println(i) } }
上述代码中,当 i 的值为 3 时,将会跳出循环,所以只会打印 0,1 和 2。
continue
continue 用于跳过这次循环,继续执行下一次循环,注意和 break 语句的区别。
1 2 3 4 5 6 7 8 9 10 11 12
package main
import"fmt"
funcmain() { for i := 0; i < 5; i++ { if i == 3 { // 当 i 值为 3 时,跳过这次循环,执行下一次循环,因此 3 不会被打印 continue } fmt.Println(i) } }