switch 语句基本结构

switch 条件表达式 {
case 常量表达式1:
语句 1
case 常量表达式2:
语句 2
.
.
.
case 常量表达式n:
语句 n
default:
语句 n+1
}

执行流程

(1)计算条件表达式的值value

(2)如果value满足某条case语句,则执行该语句,执行完跳出switch语句

(3)如果value不满足所有的case语句:

​ (3.1)如果有default,则执行该语句,执行完跳出switch语句

​ (3.2)如果没有default,则直接跳出switch语句

注意事项

(1)条件表达式可以是任意Go语言支持的数据类型

(3)不需要break语句

(4)default分支为可选项,但最多只能有一个default分支

(5)如果有两个以上的case分支的常量表达式取得相同的值,则编译会出错

多case语句

有时在一条case语句中可以对多个条件值进行测试,任意一个条件满足都会执行case语句体

func main() {
var test string
fmt.Print("请输入一个字符串:")
fmt.Scan(&test)
switch test {
case "c":
fmt.Println("c")
case "java":
fmt.Println("java")
case "go", "golang":
fmt.Println("hello golang")
default:
fmt.Println("python")
}
}
// 请输入一个字符串:go
// hello golang // 请输入一个字符串:golang
// hello golang

fallthrough语句

通常情况下,switch语句检测到符合条件的第一个case语句,就会执行该分支的代码,执行完会直接跳出switch语句。使用 fallthrough 语句,可以在执行完该case语句后,不跳出,继续执行下一个case语句。

func main() {
var test string
fmt.Print("请输入一个字符串:")
fmt.Scan(&test)
switch test {
case "go":
fmt.Println("hello go")
case "golang":
fmt.Println("hello golang")
fallthrough
case "gopher":
fmt.Println("hello gopher")
case "java":
fmt.Println("java")
}
}
// 请输入一个字符串:go
// hello go // 请输入一个字符串:golang
// hello golang
// hello gopher

无条件表达式switch语句

如果switch关键字后面没有条件表达式,则必须在case语句中进行条件判断,即类似于 if else if 语句

func main() {
var score int
fmt.Print("请输入成绩:")
fmt.Scan(&score)
switch {
case score >= 90:
fmt.Println("good")
case score >= 80 && score < 90:
fmt.Println("well")
case score < 80:
fmt.Println("ok")
}
}
// 请输入成绩:60
// ok // 请输入成绩:85
// well

小结

平时写Go语言很少用到switch语句,有时候突然用到,一些细节可能又忘了,所以写一篇博客总结一下。

Golang switch语句总结的更多相关文章

  1. Golang的选择结构-switch语句

    Golang的选择结构-switch语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.选择语句应用场景概述 选择结构也称为条件判断,生活中关于判断的场景也非常的多,比如: ( ...

  2. Golang教程:switch 语句

    switch 是一个条件语句,用于将一个表达式的求值结果与可能的值的列表进行匹配,并根据匹配结果执行相应的代码.可以认为 switch 语句是编写多个 if-else 子句的替代方式. 举例是说明问题 ...

  3. 2、Golang基础--包的使用、if-else语句、循环、switch语句、数组、切片、可变函数参数、map类型

    1 包的使用 // 为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理 // 定义包 -新建一个文件夹 -内部有很多go文件 -在每个go文件的第一行,都要声明包名,并且包名必须一致 -在一 ...

  4. 1.4 Go语言-switch语句(转)

    与串联的if语句类似,switch语句提供了一个多分支条件执行的方法.不过在这里用一个专有名词来代表分支——case.每一个case可以携带一个表达式或一个类型说明符.前者又可被简称为case表达式. ...

  5. switch语句的妙用

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

  6. 106运用SWITCH语句打印星期几的单词

    package com.chongrui.test;/*运用SWITCH语句打印星期几的单词 * */ public class TypeConvertion { public static void ...

  7. 通过goto语句学习if...else、switch语句并简单优化

    goto语句在C语言中实现的就是无条件跳转,第二章一上来就介绍goto语句就是要通过goto语句来更加清楚直观的了解控制结构. 我理解的goto语句其实跟switch语句有相似之处,都是进行跳转.不同 ...

  8. Java中简单的操作(if语句、常用操作符、switch语句、变量赋值等)

    ---------------------if语句介绍--------------------------------------------------- class IfDemo { public ...

  9. Switch语句的case穿透

    Switch语句的case穿透 一 switch语句几点说明: 1. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的. 2.case后面表达式可以接受: 基本数据类型,b ...

随机推荐

  1. Python考试_第三次

    - python 全栈11期月考题 一 基础知识:(70分) 1.文件操作有哪些模式?请简述各模式的作用(2分) 2.详细说明tuple.list.dict的用法,以及它们的特点(3分) 3.解释生成 ...

  2. python日志实时分析

    python随着人工智能的发展,越来越火热.但其实python在运维测试方面,也是一把利器. 最近就碰到了个需求,就顺手写了个python程序.用惯了go,不过发现python好像更简单点 :-) 涉 ...

  3. Hadoop集群搭建(cluster setup),ssh免密后一直要求输入密码的原因

    前段时间,网上有言SHA-1加密技术,已经被谷歌公司破解,在linux系统中,集群间加密的技术是用DSA秘钥,秘钥本身其实是一种算法,就像前面说的SHA-1也是加密算法的一种. 免密在linux系统中 ...

  4. 用js刷剑指offer(反转链表)

    题目描述 输入一个链表,反转链表后,输出新链表的表头. 牛客网链接 js代码 /*function ListNode(x){ this.val = x; this.next = null; }*/ f ...

  5. mongodb索引 过期索引

    过期索引,指的是一段时间后会过期的索引,在索引过期后,相应的数据会被删除,这适合存储一些在一段时间之后会失效的数据,比如用户的登录信息,想要用户登录信息2天后失效,需要用户重新登录,或者存储的日志,希 ...

  6. conda create 报错解决

    1. 输入命令: conda create -n query-scorer-serving python=2.7 报错: Solving environment: failed CondaError: ...

  7. #Python绘制 文本进度条,带刷新、时间暂缓的

    #Python绘制 文本进度条,带刷新.时间暂缓的 #文本进度条 import time as T st=T.perf_counter() print('-'*6,'执行开始','-'*6) maxx ...

  8. 文件已经传输过来,数据在data,http接收

  9. linux实操_shell自定义函数

    基本语法: #定义函数 function 函数名(){ 函数体 } #调用函数 函数名 参数1 参数2... 实例:计算两个数的和. 运行后

  10. 28、[源码]-AOP原理-@EnableAspectJAutoProxy

    28.[源码]-AOP原理-@EnableAspectJAutoProxy