Java核心技术卷I基础知识3.8.5 多重选择:switch语句
2023-03-09 22:18:04 时间
3.8.5 多重选择:switch语句
在处理多个选项时,使用if/else结构显得有些笨拙。Java有一个与C/C++完全一样的switch语句。
例如,如果建立一个如图3-13所示的包含4个选项的菜单系统,可以使用下列代码:
switch语句将从与选项值相匹配的case标签处开始执行直到遇到break语句,或者执行到switch语句的结束处为止。如果没有相匹配的case标签,而有default子句,就执行这个子句。
警告:有可能触发多个case分支。如果在case分支语句的末尾没有break语句,那么就会接着执行下一个case分支语句。这种情况相当危险,常常会引发错误。为此,我们在程序中从不使用switch语句。
如果你比我们更喜欢switch语句,编译代码时可以考虑加上-Xlint:fallthrough选项,如下所示:
这样一来,如果某个分支最后缺少一个break语句,编译器就会给出一个警告消息。
如果你确实正是想使用这种“直通式”(fallthrough)行为,可以为其外围方法加一个标注@SuppressWarnings("fallthrough")。这样就不会对这个方法生成警告了。(标注是为编译器或处理Java源文件或类文件的工具提供信息的一种机制。我们将在卷Ⅱ的第8章详细讨论标注。)
图3-13 switch语句的流程图
case标签可以是:
类型为char、byte、short或int的常量表达式。
枚举常量。
从Java SE 7开始,case标签还可以是字符串字面量。
例如:
当在switch语句中使用枚举常量时,不必在每个标签中指明枚举名,可以由switch的表达式值确定。
相关文章
- OpenSource | 在AWS lambda上运行用Java编写的APLs
- AWS Lambda 配合 Jenkins 实现自动化持续部署
- Java集合框架
- Java集合 Map 集合 与 操作集合的工具类: Collections 的详细说明
- 《深入理解Java虚拟机》读书笔记(七)
- Java 自带的性能调优神器!!你还没用过吗?
- 现在转行码农的成本已经非常高了,不建议盲目转行。。
- 带了一个 3 年的开发,不会循环删除 List 中的元素,心态崩了。。
- 【蓝桥杯2022省赛】蓝桥杯笔记Java版本
- 解析:佛萨奇系统开发!2.0元宇宙佛萨奇NFT版系统开发逻辑流程方案
- 实战:第十篇:使用Java代码获取Linux系统执行命令后的结果
- Java 集合框架
- 开心档-软件开发入门之Kotlin 基本数据类型
- 【程序源代码】java 物业管理系统
- 【程序源代码】 JAVA博客管理系统
- 【程序源代码】Java版企业微信SCRM系统
- 开心档-Kotlin 基础语法
- 开心档-Kotlin 基本数据类型
- 高并发情况下使用动态多数据源dynamic-datasource 3.1.0并发问题复盘
- Java堆栈溢出漏洞分析