Java 14中对switch的增强,终于可以不写break了

Posted 程序猿DD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 14中对switch的增强,终于可以不写break了相关的知识,希望对你有一定的参考价值。

面对这样的if语句,你是不是很难受呢?

if (flag == 1) 
  log.info("didispace.com: 1");
 else if (flag == 2) 
  log.info("didispace.com: 2");
 else if (flag == 3) 
  log.info("didispace.com: 3");
 else if (flag == 4) 
  log.info("didispace.com: 4");
 else 
  log.info("didispace.com: x");

是不是想到用switch来改进一下?

switch(flag) 
  case 1: 
    log.info("didispace.com: 1"); 
    break;
  case 2:
    log.info("didispace.com: 2");
    break;
  case 3:
    log.info("didispace.com: 3");
    break;
  case 4:
    log.info("didispace.com: 4");
    break;
  default:
    log.info("didispace.com: x");

舒服了吗?是不是感觉还是不那么舒服呢?

试试Java 14中对Switch表达式的增强功能,继续改造:

switch(flag) 
  case 1  -> log.info("didispace.com: 1");
  case 2  -> log.info("didispace.com: 2");
  case 3  -> log.info("didispace.com: 3");
  case 4  -> log.info("didispace.com: 4");
  default -> log.info("didispace.com: x");

这下是不是舒服了?在Java 14的switch表达式增强中,引入了对Lambda语法的支持,让每个case分支变得更为简洁。同时,容易遗忘的break也可以省略了。

Tips:这里的JEP 361特性,经历了JDK 12、JDK 13两个预览版本之后才在JDK 14中定稿,所以部分功能在JDK 12和JDK 13中也会看到,但真正使用,还是建议在JDK 14之后的版本中应用。

好了,今天的分享就到这里!如果您学习过程中如遇困难?可以加入我们超高质量的技术交流群,参与交流与讨论,更好的学习与进步!另外,不要走开,关注我!持续更新Java新特性专栏

欢迎关注我的公众号:程序猿DD。前沿技术早知道,弯道超车有希望!积累超车资本,从关注DD开始!

以上是关于Java 14中对switch的增强,终于可以不写break了的主要内容,如果未能解决你的问题,请参考以下文章

Java 14中对switch的增强,终于可以不写break了

Java 17中对switch的模式匹配增强

Java 17中对switch的模式匹配增强

019_增强switch语句

Java Script 流程控制语句(if判断switch选择和循环)

GCC 4.4:避免在 gcc 中对 switch/case 语句进行范围检查?