4.2 Go switch

switch语句用于基于不同条件执行不同动作,每一个case分支唯一,自上而下逐一测试,直到匹配结束,默认自动终止不需要break

2. switch基本语法

  1. switch后面跟着表达式(变量、常量、有返回值函数等)
  2. case后面的表达式必须和switch表达式数据类型一致
  3. case后可以有多个表达式
  4. case后面表达式常量不得重复
package main

import "fmt"

func main() {
var week int
fmt.Println("请输入星期几:")
fmt.Scanln(&week) switch week {
case 1:
fmt.Println("星期一,上班!!")
case 2, 3, 4, 5:
fmt.Println("星期二到星期五,你还得上班!!")
case 6:
fmt.Println("周六你就想休息?加班!!")
case 7:
fmt.Println("老子迟早要辞职,终于能休息了!!")
default:
fmt.Println("输入错误你就必须得上班!!")
}
}
  1. switch替代if-else使用
package main

import "fmt"

func main() {
var score int
fmt.Println("请录入你的成绩:>")
fmt.Scanln(&score)
switch {
case score > 90:
fmt.Println("成绩优秀")
case score >= 70:
fmt.Println("及格中等")
case score >= 60:
fmt.Println("勉强及格了")
default:
fmt.Println("恭喜你,考试不及格")
}
}
  1. switch之穿透fallthrough,在case语句块后添加fallthrough会继续执行下一个case
package main

import "fmt"

func main() {
var score int
fmt.Println("请录入你的成绩:>")
fmt.Scanln(&score)
switch {
case score > 90:
fmt.Println("成绩优秀")
fallthrough
case score >= 70:
fmt.Println("及格中等")
case score >= 60:
fmt.Println("勉强及格了")
default:
fmt.Println("恭喜你,考试不及格")
}
}

7.switch还可以用于判断interface变量实际存储的变量类型。

package main

import "fmt"

func main() {
var x interface{} //x是空接口类型,可以接收任意类型
var y = 19.9
x = y
switch i := x.(type) {
case nil:
fmt.Printf("x的类型是%T\n", i)
case float64:
fmt.Printf("x的类型是%T\n", i)
default:
fmt.Println("未知类型")
}
}

2.1. switch和if

判断的具体数值不多,符合整数、浮点数、字符、字符串等类型,建议用switch。

对bool类型的判断,用if,if可控范围更广。

4.2 Go switch的更多相关文章

  1. Partition:分区切换(Switch)

    在SQL Server中,对超级大表做数据归档,使用select和delete命令是十分耗费CPU时间和Disk空间的,SQL Server必须记录相应数量的事务日志,而使用switch操作归档分区表 ...

  2. java中if和switch哪个效率快

    首先要看一个问题,if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断:而 switch 只能对基本类型进行数值比较.两者的可比性就仅限在两个基本类型比较的范围内.说到基本类型 ...

  3. [开源]QuickSwitchSVNClient,快速完成SVN Switch的工具

    在实际的开发中,我们一般使用SVN工具进行源代码的管理.在实际的产品开发中,根据项目的一些定制要求,往往需要对某一些代码的修改,但是又不想影响主要的开发,这个时候需要对当前的主分支做一些分支处理(br ...

  4. C#中,switch case语句中多个值匹配一个代码块的写法

    switch (num) { case 1: Response.Write("1"); break; case 2: case 3: Response.Write("2| ...

  5. Android Studio快捷键switch case 轻松转换为if else

    Android Studio快捷键switch case 轻松转换为if else 今天碰到的问题,没有找到资料,后面找到了方法,这个记下来,转载请注明出处:http://www.cnblogs.co ...

  6. 代码的坏味道(6)——Switch声明(Switch Statements)

    坏味道--Switch声明(Switch Statements) 特征 你有一个复杂的 switch 语句或 if 序列语句. 问题原因 面向对象程序的一个最明显特征就是:少用 switch  和 c ...

  7. java中的switch case

    switch-case语句格式如下 switch(变量){ case 变量值1: //; break; case 变量值2: //...; break; ... case default: //... ...

  8. switch语句的妙用

    switch语句的普通用法很简单,如下: var a = 3; switch (a) { case 1: console.log(a); break; case 2: case 3: console. ...

  9. JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)

    switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...

  10. JavaScript (If...Else和Switch和循环遍历) 语句以及常用消息框

    If...Else 语句 JavaScript中if...else语句和Java中的语法和使用方法是一样的. 只是在JavaScript中要使用小写字母.使用大写的 IF 会出错! 至于if...el ...

随机推荐

  1. 记一次virtualbox和夜神模拟器冲突的问题

    今天装了夜神模拟器之后发现vbox打不开了,百度了一堆都说要什么重装系统啥的,我这边提示的是 “创建失败(被召者 RC: REGDB_E_CLASSNOTREG (0x80040154))” 先是用管 ...

  2. [Qt] 数字转换为 QString

    数字转换为 QString 静态函数 number(), asprintf() 公用函数 setNum(), sprintf() QString::number(), setNum() 可转换进制

  3. linux sort 命令实用手册

    Linux 中的sort 命令是一个很实用的工具,用于对文本内容以行为单位进行ASCII 码排序,默认按照升序进行排序(当然也可以按照降序). sort 命令的格式如下: sort `参数` `文件名 ...

  4. Spring5参考指南:Bean作用域

    文章目录 Bean作用域简介 Singleton作用域 Prototype作用域 Singleton Beans 中依赖 Prototype-bean web 作用域 Request scope Se ...

  5. ansible一键安装mysql8.0

    ansbile安装: # ansible在CentOS7中需要安装epel仓库 yum install -y epel-release yum install -y ansible 安装有好几种方法, ...

  6. ip-端口-协议等基本概念

    互联网上的计算机,都会有一个唯一的32位的地址——ip地址.我们访问服务器,就必须通过这个ip地址.   局域网里也有预留的ip地址:192/10/172开头.局域网里的ip地址也是唯一的.   NA ...

  7. 深入认识CSS的块级元素

    2019独角兽企业重金招聘Python工程师标准>>> 块级元素: 显示在一块内,会自动换行,元素会从上到下垂直排列,各自占一行.每个块级元素默认占一行高度,一行内添加一个块级元素后 ...

  8. 无向图求割(找桥)tarjan

    本博客参考了李煜东的<算法竞赛进阶指南>,大家要是觉得这篇文章写的不错请大家支持正版.豆瓣图书 我在之前的博客中讲解了搜索序时间戳,这次我们讲讲追溯值的概念. 追溯值: 设subtree( ...

  9. Java——HTTP超详细总结

    HTTP协议概述 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...

  10. H - Fire CodeForces - 864E 01背包

    https://codeforces.com/problemset/problem/864/E 这个题目要把这个按照物品毁灭时间进行排序,如果时间短就要排在前面,这个是因为要保证之后的物品的拯救不会影 ...