go switch
go switch无需写break
写法1:
func main() {
var a int
fmt.Scanf("%d\n", &a)
switch a {
case 1:
fmt.Println("is 1")
case 10:
fmt.Println("is 10")
default:
fmt.Println("is def")
}
}
写法2: fallthrough 穿透到下一步
func main() {
var a int
fmt.Scanf("%d\n", &a)
switch a {
case 1:
fmt.Println("is 1")
fallthrough
case 10:
fmt.Println("is 10")
default:
fmt.Println("is def")
}
}
写法3:多条件
func main() {
var a int
fmt.Scanf("%d\n", &a)
switch a {
case 1, 2, 3, 4, 5:
fmt.Println("is 1 or 2 or 3 or 4 or 5")
case 10:
fmt.Println("is 10")
default:
fmt.Println("is def")
}
}
写法4:条件判断
func main() {
var a int
fmt.Scanf("%d\n", &a)
switch {
case a >= 1 && a <= 10:
fmt.Println("dayu 1")
case a > 10:
fmt.Println("dayu 10")
default:
fmt.Println("is def")
}
}
写法5: 变量初始化
func main() {
switch a := 10; {
case a >= 1 && a <= 10:
fmt.Println("dayu 1")
case a > 10:
fmt.Println("dayu 10")
default:
fmt.Println("is def")
}
}
练习:猜数字,写一个程序,随机生成一个0到100的整数n,然后用户在终端,输入数字,如果和n相等,则提示用户猜对了。如果不相等,则提示用户,大于或小于n。
package main
import (
"fmt"
"math/rand"
)
func main() {
var n int
n = rand.Intn(100)
for {
var a int
var status = false
fmt.Scanf("%d\n", &a)
switch {
case a > n:
fmt.Println("dayu", a, n)
case a < n:
fmt.Println("xiaoyu", a, n)
case a == n:
fmt.Println("dengyu", a, n)
status = true
}
if status {
break
}
}
}