1个案例彻底弄懂 Go语言中的switch case语句 (Golang经典编程案例)

注意

  1. switch/case 后是一个表达式(即:常量,变量,一个有返回的函数都可以);

  2. case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致;

  3. case后面可以带多个表达式,使用逗号间隔;

  4. case后面的表达式如果是常量值,则要求不能重复;

  5. case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后退出switch,如果一个都匹配不到,则执行default;

  6. default语句不是必须的;

  7. switch 后也可以不带表达式,类似 if --else分支来使用;

  8. switch 后也可以直接声明一个变量,分号结束,不过不推荐。

  9. switch穿透:如果在case语句增加fallthrough,则会继续执行下一个case,默认只穿透一层。

  10. type-switch :来判断interface变量中实际指向的变量类型,比如:

    package main
    import (
    	"fmt"
    )
    func main() {
    	var x interface{}
    	var y = 10
    	x=y
    	switch i := x.(type) {
    	case nil:
    		fmt.Printf("x的类型是:%T",i)
    	case int:
    		fmt.Printf("x是 int 类型")
    	case float64:
    		fmt.Printf("x是 float64 类型")
    	case func(int) float64:
    		fmt.Printf("x是func(int)类型")
    	case bool,string:
    		fmt.Printf("x是bool或者string类型")
    	default:
    		fmt.Printf("未知型")
    	}
    }
    

    执行结果如下图:在这里插入图片描述

案例:根据用户输入的月份,打印该月份所属的季节。

package main

import (
	"fmt"
)

func main() {
	//根据用户输入的月份,打印该月份所属的季节
	var month byte
	fmt.Print("请输入月份:")
	fmt.Scanln(&month)
	switch month {
		case 3, 4, 5:
			fmt.Println("春天")
		case 6, 7, 8:
			fmt.Println("夏天")
		case 9, 10, 11:
			fmt.Println("秋天")
		case 12, 1, 2:
			fmt.Println("冬天")
		default:
			fmt.Println("输入有误...")
	}
}

执行结果如下图所示:
在这里插入图片描述

switch和if的选择:

  1. 如果判断的具体数值不多,而且符合整数,浮点数,字符,字符串这几种类型。建议使用switch语句,简洁高效。
  2. 其他情况:对区间判断和结果为bool类型的判断,使用if,if的使用范围更广。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据知道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值