Golang switch语句总结
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语句总结的更多相关文章
- Golang的选择结构-switch语句
Golang的选择结构-switch语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.选择语句应用场景概述 选择结构也称为条件判断,生活中关于判断的场景也非常的多,比如: ( ...
- Golang教程:switch 语句
switch 是一个条件语句,用于将一个表达式的求值结果与可能的值的列表进行匹配,并根据匹配结果执行相应的代码.可以认为 switch 语句是编写多个 if-else 子句的替代方式. 举例是说明问题 ...
- 2、Golang基础--包的使用、if-else语句、循环、switch语句、数组、切片、可变函数参数、map类型
1 包的使用 // 为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理 // 定义包 -新建一个文件夹 -内部有很多go文件 -在每个go文件的第一行,都要声明包名,并且包名必须一致 -在一 ...
- 1.4 Go语言-switch语句(转)
与串联的if语句类似,switch语句提供了一个多分支条件执行的方法.不过在这里用一个专有名词来代表分支——case.每一个case可以携带一个表达式或一个类型说明符.前者又可被简称为case表达式. ...
- switch语句的妙用
switch语句的普通用法很简单,如下: var a = 3; switch (a) { case 1: console.log(a); break; case 2: case 3: console. ...
- 106运用SWITCH语句打印星期几的单词
package com.chongrui.test;/*运用SWITCH语句打印星期几的单词 * */ public class TypeConvertion { public static void ...
- 通过goto语句学习if...else、switch语句并简单优化
goto语句在C语言中实现的就是无条件跳转,第二章一上来就介绍goto语句就是要通过goto语句来更加清楚直观的了解控制结构. 我理解的goto语句其实跟switch语句有相似之处,都是进行跳转.不同 ...
- Java中简单的操作(if语句、常用操作符、switch语句、变量赋值等)
---------------------if语句介绍--------------------------------------------------- class IfDemo { public ...
- Switch语句的case穿透
Switch语句的case穿透 一 switch语句几点说明: 1. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的. 2.case后面表达式可以接受: 基本数据类型,b ...
随机推荐
- Abp 领域事件简单实践 <一>
领域事件,是领域内发生的事件引发别的操作,其他的类可以订阅这是事件. 接着上一篇,在testOrder 上实现一个接口 IEventHandler<EntityCreatingEventDat ...
- [转载]Linux 命令详解:./configure、make、make install 命令
[转载]Linux 命令详解:./configure.make.make install 命令 来源:https://www.cnblogs.com/tinywan/p/7230039.html 这些 ...
- 编译 SharpNav 遇到的问题和解决过程
https://github.com/Robmaister/SharpNav 是github上基于recastnavtigation的一个C#项目. github上并没有详细的编译过程. 首先把项目c ...
- svnkit 用java 操作 svn
官网 https://svnkit.com/ https://blog.csdn.net/Hui_hai/article/details/80318518 https://blog.csdn.net/ ...
- vue的$nextTick使用后的js代码执行顺序问题
一.问题产生背景: 父组件已经获得子组件实例,并能直接触发子组件的方法,在父组件中调用了子组件的两个方法 // 父组件调用子组件,this.picker是获取的子组件整个实例,先调用update,再调 ...
- Python 多进程编程
import multiprocessing import time import os import random g_nums = [11, 22, 33] def test1(): while ...
- sql 给相同属性的数据排序
UPDATE b SET OrderIndex = a.OrderIndex FROM ( SELECT RTRIM(ROW_NUMBER() OVER ( PARTITION BY [ItemID] ...
- 9.Redis的Java客户端Jedis
Redis的Java客户端Jedis Jedis所需jar包 commons-pool-1.6.jar jedis-2.1.0.jar 1.Jedis常用操作(jedis中的api 和 我们在 l ...
- hashCode 及hashcode与equals的区别
1.hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值 详细了解请 参考 [1] public int hashCode()返回该对象的哈希码值.支持此方法是为了提高哈 ...
- python实践总结与反思
2019.6.20 python近期实践总结与反思 记录一些这两天python犯的一些低级却易犯的错误.千万不要犯第二次啊!! 1. py文件名字问题 py文件命名不能和调用的模块名一样! 比如,我要 ...