package mainimport "fmt"func main()  {/*switch语句结构switch表达式 {case 表达式1,表达式2,...:语句块1case 表达式3,表达式4,...:语句块2这里可以有无限个case语句default:语句块}//案例://    请编写一个程序,该程序可以接收一个字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期二… 根//据用户的输入显示相依的信息.要求使用 switch 语句完成*/var key bytefmt.Println("请输入: a,b,c,d,e,f,g 中的任意一个")fmt.Scanf("%c",&key)switch key {case 'a':fmt.Println("星期一,猴子穿新衣")case 'b':fmt.Println("星期二,猴子肚子餓")case 'c':fmt.Println("星期三,猴子去爬山")case 'd':fmt.Println("星期四,猴子看電視")//....default:fmt.Println("输入错误!!!")}fmt.Println("--------------------------------")/*案例case/switch 后是一个表达式( 即:常量值、变量、一个有返回值的函数等都可以)*/var(n1 int64 = 10n2 int64 = 10) //变量值匹配必须是同类型才能匹配switch n1{case n2: //invalid case n2 in switch on n1 (mismatched types int64 and int32)//不同类型的不可匹配会报错fmt.Println("ok1")default:fmt.Println("out")}fmt.Println("--------------------------------")//案例:case 后面可以带多个表达式,使用逗号间隔。比如 case 表达式 1, 表达式 2var (n3 int32 = 15n4 int32 = 15)switch n3 {case n4,10,5:fmt.Println("ok2")default:fmt.Println("out")}fmt.Println("--------------------------------")//案例:case 后面的表达式如果是常量值(字面量),则要求不能重复var (n5 int32 = 15n6 int32 = 15//n7 int32 = 15)switch n5 {case n6,10,5:fmt.Println("ok2")//case n7,10: //duplicate case 10 in switch 因为上一个case有10这个常量了所以不能重复使用// fmt.Println("ok3")default:fmt.Println("out")}fmt.Println("--------------------------------")//案例:switch 后也可以不带表达式,类似 if --else 分支来使用var age int32 = 10switch  {case age == 10:fmt.Println("等于")case age == 20:fmt.Println("不等于")default:fmt.Println("没有匹配到")}fmt.Println("--------------------------------")var score int32 = 90switch {case score >= 90:fmt.Println("成绩优良")case score <= 80 :fmt.Println("成绩及格")case score <= 60:fmt.Println("成绩不合格")default:fmt.Println("成绩不佳继续努力")}fmt.Println("--------------------------------")//案例:switch 后也可以直接声明/定义一个变量,分号结束,不推荐switch score := 80;{case score >= 90:fmt.Println("成绩优良")case score <= 80 :fmt.Println("成绩及格")case score <= 60:fmt.Println("成绩不合格")default:fmt.Println("成绩不佳继续努力")}fmt.Println("--------------------------------")/*switch 穿透-fallthrough ,如果在 case 语句块后增加 fallthrough ,则会继续执行下一个 case,也叫 switch 穿透一般在 switch 语句中不使用 fallthrough 语句*/switch score := 100;{case score >= 90:fmt.Println("成绩优良")fallthroughcase score <= 80 :fmt.Println("成绩及格")fallthroughcase score <= 60:fmt.Println("成绩不合格")default:fmt.Println("成绩不佳继续努力")}}

运行结果:

请输入: a,b,c,d,e,f,g 中的任意一个
a
星期一,猴子穿新衣
--------------------------------
ok1
--------------------------------
ok2
--------------------------------
ok2
--------------------------------
等于
--------------------------------
成绩优良
--------------------------------
成绩及格
--------------------------------
成绩优良
成绩及格
成绩不合格

golang switch使用相关推荐

  1. Go语言自学系列 | golang switch语句

    视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...

  2. golang switch case语句 简介

    注意: 1.switch/case 后是一个表达式(即:常量,变量,一个有返回的函数都可以): 2.case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致: 3.case后面可以 ...

  3. golang switch fallthrough

    fallthrough:Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面 ...

  4. golang switch灵活写法

    switch是很容易理解的,先来个代码,运行起来,看看你的操作系统是什么吧. package mainimport ("fmt""runtime" )func ...

  5. Golang switch 进阶

    文章目录 一. case 表达式中的子表达式应该不重复 二. 使用表达值突破 一 的限制 三. case 类型匹配 四. switch 中的自动类型转换 一. case 表达式中的子表达式应该不重复 ...

  6. 关于golang的一些基础

    说实话,golang挺简单的,像我这样的低级的编程水平学起来感觉不太吃力.goroutine + channel挺开眼界的,这样的http并发模型秒杀python. -我第一次知道type其实和str ...

  7. Go语言-switch case | switch中判断多个值、interface conversion: interface {} is float64, not int

    文章目录 Go语言-switch case 背景 switch case Golang中switch的特殊用法--fallthrough go语言switch中判断多个值 Type Switch,判断 ...

  8. golang 年级转换入学年份

    * map.txt '高三' => '03-2016','高二' => '03-2017','高一' => '03-2018','初三' => '02-2016','初二' = ...

  9. Go语言自学系列 | 汇总

    视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,请移步至知乎网站,谢 ...

  10. mysql switch binlog_如何使用 Golang 处理 MySQL 的 binlog

    大家好,我是 Artem,一名 Golang 开发.我们的团队花费了大量时间训练 MySQL binlog.这里整合一些简单用法,不会放过任何隐藏的陷阱.示例代码将在最后显示. 每次从 数据库 查询的 ...

最新文章

  1. C语言之头文件,static与const关键字
  2. 古巴雪茄高希霸世纪1.2.3.4.5.6.半世纪7款雪茄的区别?
  3. Spring对事务管理的支持的发展历程--转
  4. 零拷贝概念 -- linux内核
  5. C语言 二维数组做函数参数的几种情况
  6. “阿法狗”之父:关于围棋,人类3000年来犯了一个错
  7. SP1557 GSS2 - Can you answer these queries II
  8. php默认字体是什么,在word中系统默认的中文字体和字号是什么,word默认字体
  9. 【C++快速入门】面向对象篇
  10. 蓝点中文Linux2.0 实验十三 进程与作业管理
  11. DEA博弈交叉效率matlab,基于DEA/AR博弈交叉效率方法的学术期刊评价研究
  12. (附源码)springboot西安市中小学生护眼平台开发 毕业设计 080855
  13. Spring总结四:JDBC操作
  14. 安装两个Mysql错误 ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)”
  15. java multi tenancy_MybatisPlus 多租户架构(Multi-tenancy)实现详解
  16. excel ctrl shift+键盘方向键的使用
  17. BGP邻居路由条目数超限
  18. 在echarts中圆环图中间 自定义图片引入
  19. switch() 参数支持类型
  20. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java大学生就业管理系统5t101

热门文章

  1. cad单位_原来CAD的线条还可以这样加粗!还能修改初始单位!太实用了
  2. RK3399外设驱动之RTC驱动(一)
  3. HTML基础-跟着李南江学编程
  4. excel 常用快捷键及小技巧
  5. deecamp训练营
  6. html标签中添加点击事件的写法
  7. wps垂直居中快捷键_word如何设置垂直居中 wpsword设置垂直居中
  8. 基于stm32的智能家居语音控制系统
  9. 把数组排成最小的数(输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。)
  10. 中标麒麟neokylin linux advanced server 7update6 GUI server安装配置pyqt5运行环境说明