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
		}
	}
}

猜你喜欢

转载自www.cnblogs.com/LC161616/p/9773819.html