我们都知道 switch 用来走流程分支,大多情况下用来匹配单个值,如下面的例子所示:

/*** @from 微信公众号:Java技术栈* @author 栈长*/
private static void test(int value) {switch (value) {case 1:System.out.println("1");break;case 2:System.out.println("1");break;case 3:System.out.println("1");break;case 4:System.out.println("1");break;case 5:System.out.println("1");break;case 6:System.out.println("0");break;case 7:System.out.println("0");break;default:System.out.println("-1");}
}

相关阅读:switch case 支持的 6 种数据类型。

大概的意思就是,周一到周五输出:1,周六到周日输出:0,默认输出-1。

这样写,很多重复的逻辑,冗余了。

也许这个例子不是很合适,用 if/ else 更恰当,但这只是个例子,实际开发中肯定会有某几个 case 匹配同一段逻辑的情况。

那么,如何让多个 case 匹配同一段逻辑呢?

如下面例子所示:

/*** @from 微信公众号:Java技术栈* @author 栈长*/
private static void test(int value) {switch (value) {case 1: case 2: case 3: case 4: case 5:System.out.println("1");break;case 6: case 7:System.out.println("0");break;default:System.out.println("-1");}
}

把相同逻辑的 case 放一起,最后一个 case 写逻辑就行了。

格式化后就是这样了:

/*** @from 微信公众号:Java技术栈* @author 栈长*/
private static void test(int value) {switch (value) {case 1: case 2: case 3: case 4: case 5:System.out.println("1");break;case 6: case 7:System.out.println("0");break;default:System.out.println("-1");}
}

是不是很骚?

其实这不是最合适的最好的写法,在 Java 12 中还可以更骚。

在 Java 12 中可以用逗号来分开多个值,还能用 lambda 表达式,甚至还能省略 break,使用 switch 更方便,具体看这篇文章:Java 12 骚操作, switch居然还能这样玩。

switch多值匹配骚操作,带你涨姿势!相关推荐

  1. java switch 值_Java switch多值匹配操作详解

    这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道 switch 用来走流程分支,大 ...

  2. java case 多个值_Java switch多值匹配操作详解

    这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道 switch 用来走流程分支,大 ...

  3. GitHub 骚操作,个人页还能这么玩?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 之前写过一篇 GitHub 骚操作的文章 GitHub 竟 ...

  4. python switch语句_几个Python里的骚操作

    今天给大家分享几个Python里面的骚操作,大家会更加感受到Python编码的强大. 1.用字典映射代替switch case语句 大家首先看下面这段用C#编写的switch case代码,代码很好理 ...

  5. 音视频骚操作,FFmpeg 如何播放带「图片」的 M3U8 视频,IJKPlyaer 适配非标 TS 文件

    如果看到一个需要播放的视频链接显示是一张图片,你会不会感觉有点懵?如果这张图片写着 png,然后实际格式是 bmp ,你会不会更懵了?如果这个 bmp 还做了加密篡改呢?今天我们要聊的就是这样一个充满 ...

  6. php switch 判断多个,php switch语句多个值匹配同一代码块的实现

    php switch语句多个值匹配同一代码块的实现 先说说switch()语句的格式 switch(表达式){ case 匹配1: 当匹配1和表达式匹配成功执行的代码; break; case 匹配2 ...

  7. 索引的使用—— 验证索引提升查询效率 || 避免索引失效 —— 全值匹配 /最左前缀法则/范围查询右边的列,不能使用索引/不要在索引列上进行运算操作/字符串不加单引号,造成索引失效

    索引的使用 索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题 验证索引提升查询效率 查询速度很快,接近0s ,主要的原因是因为id为主键,有索 ...

  8. HDU 1853 HDU 3488【有向环最小权值覆盖问题 】带权二分图匹配 KM算法

    HDU 1853 & HDU 3488[有向环最小权值覆盖问题 ]最小费用最大流 In the kingdom of Henryy, there are N (2 <= N <= ...

  9. 怎么表示一个PHP语句块,php switch语句多个值匹配同一代码块应用示例

    先说说switch()语句的格式 switch(表达式){ case 匹配1: 当匹配1和表达式匹配成功执行的代码; break; case 匹配2: 当匹配2和表达式匹配成功执行的代码; break ...

最新文章

  1. LR11之web_reg_find文本检查点的使用
  2. 参与有奖 | Arthas 第 5 期征文活动火热开启!(内附第四期中奖名单)
  3. MySQL max()函数
  4. SpringBoot中 pagehelper插件使用
  5. python函数的嵌套和递归_Python通过递归函数输出嵌套列表元素
  6. AutoLISP恢复系统变量到默认值
  7. 【Android】3.21 示例21—兴趣点收藏功能
  8. linux ssl 脚本 51cto,升级opensslopenssh的shell脚本
  9. php读取带分隔符的txt文件,Pandas中文手册
  10. HART协议命令与UART串口解析
  11. Windows 10 企业版LTSCjihuo
  12. PCAN-View 软件添加111K波特率选项
  13. 毕业生写论文必备!! 设置奇数偶数页眉不同,奇数页是对应本章章节名,偶数页为论文名
  14. 手撕神经网络(1)——神经网络的基本组件
  15. checkSelfPermission总是返回PERMISSION_GRANTED
  16. 液相色谱柱PHP,浅谈液相色谱柱现代史
  17. 从零开始做运营 入门版(张亮著)读书知识整理①
  18. Netbackup 8.1 许可证
  19. Geophysical research letters 进度2
  20. python余弦定理_余弦定理与文本相似度

热门文章

  1. 编程之美-寻找发帖“水王”方法整理
  2. scoped原理、不足、弥补或替代
  3. C# 6.0的字典(Dictionary)的语法
  4. 从零开始学_JavaScript_系列(16)——CSSlt;3gt;(文本、对齐、圆角、盒模型、背景)...
  5. 笔记本Wifi连接出现“设置与网络连接不匹配”的解决方法
  6. vim去掉windows文本的多余的回车符(^M)
  7. 希望的背后……感谢青鸟、感谢51cto、感谢帮助过我的人们
  8. OSPF的LSA类型 ——连载一路由器LSA
  9. matlab中怎么求矩阵的特征值和特征向量
  10. MATLAB中:左右除法、逆inv、广义逆pinv的区别