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. memcache的缓存原理和应用

    缓存原理 Memcache采用键值对存储方式.它本质是一个大的 hash表,key的最大长度为255个字符,最长过期时间为30天.它的内存模型如下:Memcache预先将可支配的内存空间进行分区(Sl ...

  2. 20199326《Linux内核原理与分析》第十一周作业

    Shellsock攻击实验 实验背景 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发. Shellshock,又称Bash ...

  3. Java本地的项目,怎么可以让别人通过外网访问-内网穿透

    2019独角兽企业重金招聘Python工程师标准>>> 一.点击链接 https://natapp.cn/ 注册个免费的账户 NATAPP官网 二.登陆进去以后查看authtoken ...

  4. Everything 本地磁盘文件搜索工具下载!

    如何运用布尔算子? AND(且)是缺省使用的布尔算子. 例如:如果要搜索 foo 和 bar 同时出现的文件:foo bar 如果从两者之中任一个都可以,则用 | 介于两者之间. 例如:如果要搜索.j ...

  5. 通过fiddler抓取IDEA的请求

    2019独角兽企业重金招聘Python工程师标准>>> 因为fiddler默认是代理的8888端口,所以设置一下IDEA的请求使用本地的8888作为代理发出. 1."EDI ...

  6. #if 和#ifdef的区别

    转自:https://blog.csdn.net/zhangchiytu/article/details/7563329 先看个例子:#define TARGET_LITTLE_ENDINA 1#de ...

  7. python(For 循环语句)

    一.For循环 Python for 循环可以遍历任何序列的项目,如一个列表或者一个字符串或者字典等. 语法模式:for var in sequence: (1)从某个集合(列表等)里顺次取值 #遍历 ...

  8. MySQL高级(十三)--- 表锁

    前言:锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算机资源(如CPU.RAM.I/O等)的争用外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是 ...

  9. 如何使用thrift 服务引擎组件

    在本文中将介绍如果通过thrift 组件集成到surging 微服务引擎中,然后可以选择dotnetty 或thrift作为服务远程调用RPC,也可以通过其它语言的thrift 调用surging 服 ...

  10. 002_python的in,while else,格式化输出,逻辑运算符,int与bool转换,编码

    数据 1.什么是数据? x=10,10是我们要存储的数据 2.为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字 字符串 列表 元组 字典 集合 ...