package main
import "fmt"
func main() {
score := "B"
switch score {
case "A":
fmt.Println("非常棒")
case "B":
fmt.Println("优秀")
case "C":
fmt.Println("及格")
default:
fmt.Println("不及格")
}
}
2、case 语句多个值
Go复制代码
package main
import "fmt"
func main() {
n := 2
switch n {
case 1, 3, 5, 7, 9:
fmt.Println("奇数")
case 2, 4, 6, 8:
fmt.Println("偶数")
default:
fmt.Println(n)
}
}
3、fallthrough 语句
fallthrough 语法可以执行满足条件的 cast 的下一个 case,是为了兼容C 语言中的 case 设计
Go复制代码
package main
import "fmt"
func main() {
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("...")
}
}
/*
a
b
四、break、continue、goto
1、break 跳出单循环
Go复制代码
package main
import "fmt"
func main() {
k := 1
for { // 这里也等价 for ; ; {
if k <= 10 {
fmt.Println("ok~~", k)
} else {
break //break 就是跳出这个 for 循环
}
k++
}
}
2、跳出多重循环
在多重循环中,可以用标号 label 标出想 break 的循环
Go复制代码
package main
import "fmt"
func main() {
lable2:
for i := 0; i < 2; i++ {
for j := 0; j < 10; j++ {
if j == 2 {
break lable2
}
fmt.Println("i j 的值:", i, "-", j)
}
}
}
/*
i j 的值: 0 - 0
i j 的值: 0 - 1
*/
3、continue(继续下次循环)
Go复制代码
package main
import "fmt"
func main() {
for i := 0; i < 2; i++ {
for j := 0; j < 4; j++ {
if j == 2 {
continue
}
fmt.Println("i j 的值", i, "-", j)
}
}
}
/*
i j 的值 0 - 0
i j 的值 0 - 1
i j 的值 0 - 3
i j 的值 1 - 0
i j 的值 1 - 1
i j 的值 1 - 3
*/
4、goto(跳转到指定标签)
Go复制代码
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
for j := 0; j < 10; j++ {
if j == 2 {
goto breakTag // // 设置退出标签
}
fmt.Printf("%v-%v\n", i, j)
}
}
return
breakTag: // 标签
fmt.Println("结束 for 循环")
}
/*
0-0
0-1
结束 for 循环
*/