go基础——switch语法

package main

import "fmt"

/*
	switch语法结构:
		switch 变量名 {
		case 数值1:分支1
		case 数值2:分支2
		...
		default:最后一个分支
		}

	注意事项:
		1.switch可以作用在其他类型上,case后的数值必须和switch作用的变量类型一致
		2.case是无序的
		3.case后的数值是唯一的
		4.default语句是可选操作
*/
func main() {
	num := 4
	switch num {
	case 1:
		fmt.Println("一季度")
	case 2:
		fmt.Println("二季度")
	case 3:
		fmt.Println("三季度")
	case 4:
		fmt.Println("四季度")
	default:
		fmt.Println("数据有误")
	}

	f := true
	switch f {
	case true:
		fmt.Println("对")
	case false:
		fmt.Println("错")
	}

	//特殊用法1:省略switch后面的变量,相当于直接作用在true上
	switch {
	case num == 1:
		fmt.Println("一季度")
	case num == 2:
		fmt.Println("二季度")
	case num == 3:
		fmt.Println("三季度")
	case num == 4:
		fmt.Println("四季度")
	default:
		fmt.Println("数据错误")
	}

	//特殊用法2:case后可以同时跟随多个数值
	num1 := 8
	mod1 := num1 % 10
	switch mod1 {
	case 1, 3, 5, 7, 9:
		fmt.Printf("%d单数\n", num1)
	case 0, 2, 4, 6, 8:
		fmt.Printf("%d双数\n", num1)
	}

	//特殊用法3:switch后可以加初始化语句,作用域在switch语句内
	switch mod2 := num1 % 10; mod2 {
	case 1, 3, 5, 7, 9:
		fmt.Printf("%d单数\n", num1)
	case 0, 2, 4, 6, 8:
		fmt.Printf("%d双数\n", num1)
	}

	//switch中的break和fallthrough
	switch n := 2; n {
	case 1:
		fmt.Println(n)
		fmt.Println("1")
	case 2:
		fmt.Println(n)
		break //跳出
		fmt.Println("2")
	}

	switch m := 1; m {
	case 1:
		fmt.Println(1)
		fallthrough //无需匹配,继续执行下一个case语句
	case 2:
		fmt.Println(2)
	}
}

四季度

四季度
8双数
8双数
2
1
2

posted @ 2021-10-16 17:12  沄持的学习记录  阅读(180)  评论(0编辑  收藏  举报