switch多值匹配骚操作,带你涨姿势!
生活随笔
收集整理的這篇文章主要介紹了
switch多值匹配骚操作,带你涨姿势!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們都知道?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多值匹配骚操作,带你涨姿势!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字节跳动 EB 级 HDFS 实践
- 下一篇: 故障中的跨年夜