go语言基础之switch语句 和 fallthrough 用途
Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码: 示例1:
package main import "fmt" func main() {
num := 3 switch num {
case 1:
fmt.Println("按下的是1楼")
case 2:
fmt.Println("按下的是2楼")
case 3:
fmt.Println("按下的是3楼")
case 4:
fmt.Println("按下的是4楼")
}
}
#执行结果
按下的是3楼
示例2:
package main import "fmt" func main() {
num := 5 switch num {
case 1:
fmt.Println("按下的是1楼")
//break //go语言保留了break关键字,跳出switch语言,不写,默认就包含了。
case 2:
fmt.Println("按下的是2楼")
case 3:
fmt.Println("按下的是3楼")
case 4:
fmt.Println("按下的是4楼")
default:
fmt.Println("按下的是xxx楼")
}
}
#执行结果
按下的是xxx楼
示例3: 需要输入按下的楼层
package main import "fmt" func main() {
var num int
fmt.Printf("请按下楼层:")
fmt.Scan(&num) switch num {
case 1:
fmt.Println("按下的是1楼")
case 2:
fmt.Println("按下的是2楼")
case 3:
fmt.Println("按下的是3楼")
case 4:
fmt.Println("按下的是4楼")
default:
fmt.Println("按下的是xxx楼")
}
}
#执行结果:
请按下楼层:2 #输入2
按下的是2楼
用途:fallthrough //不跳出switch语句,后面的无条件执行
示例4:
package main import "fmt" func main() {
var num int
fmt.Printf("请按下楼层:")
fmt.Scan(&num) switch num {
case 1:
fmt.Println("按下的是1楼")
fallthrough //不跳出switch语句,后面的无条件执行
case 2:
fmt.Println("按下的是2楼")
fallthrough
case 3:
fmt.Println("按下的是3楼")
fallthrough
case 4:
fmt.Println("按下的是4楼")
fallthrough
default:
fmt.Println("按下的是xxx楼")
}
}
#执行结果
请按下楼层:1
按下的是1楼
按下的是2楼
按下的是3楼
按下的是4楼
按下的是xxx楼
示例5: (推荐用法)
package main import "fmt" func main() { switch num := 1; num {
case 1:
fmt.Println("按下的是1楼")
case 2:
fmt.Println("按下的是2楼")
case 3:
fmt.Println("按下的是3楼")
case 4:
fmt.Println("按下的是4楼")
default:
fmt.Println("按下的是xxx楼")
}
}
#执行结果:
按下的是1楼
示例6: case 后面接数字,可以写多个
package main //必须有一个main包 import "fmt" func main() {
//支持一个初始化语句, 初始化语句和变量本身, 以分号分隔
switch num := 4; num { //switch后面写的是变量本身
case 1:
fmt.Println("按下的是1楼") case 2:
fmt.Println("按下的是2楼") case 3, 4, 5:
fmt.Println("按下的是yyy楼") case 6:
fmt.Println("按下的是4楼") default:
fmt.Println("按下的是xxx楼")
}
}
#执行结果:
按下的是yyy楼
示例7:
package main import "fmt" func main() {
score := 85
switch {
case score > 90: //case后面可以放条件
fmt.Println("优秀")
case score > 80:
fmt.Println("良好")
case score > 70:
fmt.Println("一般")
default:
fmt.Println("其它")
}
}
#执行结果:
良好
go语言基础之switch语句 和 fallthrough 用途的更多相关文章
- java基础(六) switch语句的深入解析
引言 switch 语句是非常的基础的知识,掌握起来也不难掌握,语法比较简单.但大部分人基本是知其然,不知其所以然.譬如 早期JDK只允许switch的表达式的值 int及int类型以下的基本类型 ...
- Java基础(1):Switch语句注意的5个地方
不得不说的几点小秘密: 1. switch 后面小括号中表达式的值必须是整型或字符型 2. case 后面的值可以是常量数值,如 1.2:也可以是一个常量表达式,如 2+2 :但不能是变量或带有变量的 ...
- 【Java基础】switch语句实现根据数字输出对应星期
代码: import java.util.Scanner; /* * switch语句格式: * switch(表达式) { * case 值1: * 语句体1; * break; * case 值2 ...
- 黑马程序员_毕向东_Java基础视频教程——switch语句练习(随笔)
switch(练习) /* if和 switch 语句很像. 具体什么场景下使用什么语句呢? 如果判断的具体数值不多且符合byte.short.int.char.String类型,虽然两个语句都可以使 ...
- C 语言中的 switch 语句 case 后面是否需要加大括号
事件原由为编辑器的自动缩进,当 case 换行后不自动缩进. 于是在在想可以可否在 case 后面再大括号,让其自动缩进. 查了资料,发现 case 是可以加大括号的,相当于代码块. 而且还有另外一个 ...
- C语言基础:常见循环语句 分类: iOS学习 c语言基础 2015-06-10 21:46 13人阅读 评论(0) 收藏
for语句 for( 初始化表达式; 循环判断条件 ;增量表达式); while(条件表达式){ 循环体; } 先判断条件表达式,如果为真就执行循环体,执行完再去判断条件表达式 do{ 循环体; } ...
- Java入门 - 语言基础 - 10.条件语句
原文地址:http://www.work100.net/training/java-if-else.html 更多教程:光束云 - 免费课程 条件语句 序号 文内章节 视频 1 概述 2 if...e ...
- R语言Switch语句
R语言Switch语句 switch语句允许一个变量值的列表来平等进行测试.每个值被称为一个条件(情况),变量被接通检查每个条件(情况). 语法 在R语言中创建switch语句的基本语法是: 以下规则 ...
- Python 为什么不支持 switch 语句?
本文出自"Python为什么"系列,请查看全部文章 在这篇文章里,我们会聊一聊为什么 Python 决定不支持 switch 语句. 为什么想要聊这个话题呢? 主要是因为 swit ...
随机推荐
- 【51nod】1309 Value of all Permutations
题解 可重元素的全排列都是很熟知的东西了 就是 \(\frac{n!}{\prod c_{i}!}\)其中\(c_{i}\)是第i种数出现的次数 我们对于每个元素统计一下多少排列里这个数会被统计进去 ...
- 久邦数码(3G门户)面试
久邦数码(3G门户)面试 1.数组和链表的区别(为什么数组带有索引) 2.数据库(手写选出一个公司年龄最大的100个员工) 3.一百个数查找一个数 利用二分查找一个数在最差的情况下至少比较多少次 4. ...
- Django学习笔记-2018.11.16
知识储备: 1 Python基础 2 数据库SQL 3 HTTP协议 4 HTML&&CSS 5 正则表达式 Django启动 django-admin startproject pr ...
- vscode debugger for chrome 调试webpack的配置问题
module.exports = { entry: './app.ts', output: { filename: 'bundle.js', publicPath: '/assets', devtoo ...
- Java 性能优化手册 — 提高 Java 代码性能的各种技巧
转载: Java 性能优化手册 - 提高 Java 代码性能的各种技巧 Java 6,7,8 中的 String.intern - 字符串池 这篇文章将要讨论 Java 6 中是如何实现 String ...
- 【转】windows下安装Python虚拟环境virtualenvwrapper-win
由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题. 通过 virtualenv 这个工具,就可以构建一系列虚拟的Python环境 ...
- Django 和 html
下面是对应的形式,自定义的forms
- 表视图(UITableView)与表视图控制器(UITableViewController)
表视图(UITableView)与表视图控制器(UITableViewController)其实是一回事. 表视图控制器是一种只能显示表视图的标准视图控制器,可在表视图占据整个视图时使用这种控制器.虽 ...
- 使用matplotlib绘图(二)之柱状图
# 使用matplotlib绘制柱状图 import numpy as np import matplotlib.pyplot as plt # 设置全局字体,以支持中文 plt.rcParams[' ...
- HDU 5952 [DFS]
题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=5952] 题意:给出一张无向图,然后判断这张图中一共有多少个不同的大小为S的完全图,并且保证每个点的度 ...