当前位置: 首页 > news >正文

自己做的网站点进去很卡巴彦淖尔seo

自己做的网站点进去很卡,巴彦淖尔seo,黄山网站建设jidela,会计软件定制开发包括Java 12 引入了 Switch 表达式功能,这可以用来简化许多原本冗长的 switch 语句。 switch 语句通常用于替代大量的 if 与 else if 判断,从而使代码更易读。不过,传统的 switch 语句自身也有些冗长,而且对 break 的严格要求也容易引…

Java 12 引入了 Switch 表达式功能,这可以用来简化许多原本冗长的 switch 语句。

switch 语句通常用于替代大量的 ifelse if 判断,从而使代码更易读。不过,传统的 switch 语句自身也有些冗长,而且对 break 的严格要求也容易引发错误。switch 表达式就是为了解决这些问题而引入的:它更简洁、更不容易出错。

Switch 语句 vs Switch 表达式

它们的主要区别在于:

  • switch 语句 只能对一个已定义的变量进行赋值更新。

  • switch 表达式 本身会计算并返回一个值,因此可以直接赋值给变量。

此外,switch 表达式引入了一种新的箭头语法(->),进一步简化了代码的结构,提高了可读性,同时也不再需要使用 break 语句。
示例对比:

假设我们有一个枚举类用于“品尝”不同的事物,每种食物的评分是从 1 到 10,1 表示极其难吃,10 表示极其美味。

private enum ThingsToTaste { PIZZA, BROCCOLI, STEAK, SUGAR, DIRT, MEATBALLS, CHOCOLATE }

使用传统 switch 语句的写法:

int tasteValue = 0;
ThingsToTaste taste = ThingsToTaste.DIRT;switch (taste) {case SUGAR:case PIZZA:case CHOCOLATE:tasteValue = 10;break;case MEATBALLS:case STEAK:tasteValue = 7;break;case BROCCOLI:tasteValue = 4;break;case DIRT:tasteValue = 1;break;default:throw new IllegalStateException("Invalid tastable object: " + taste);
}
System.out.println(taste + ": " + tasteValue);

使用 switch 表达式的简洁写法:

int tasteValue = switch (taste) {case SUGAR, PIZZA, CHOCOLATE -> 10;case MEATBALLS, STEAK -> 7;case BROCCOLI -> 4;case DIRT -> 1;default -> throw new IllegalStateException("Invalid tastable object: " + taste);
};

可以看到,这种写法更短更清晰:

  • 不需要提前初始化 tasteValue

  • 每组相同的结果可以写在一行。

  • 不需要 break,箭头 -> 会自动停止并返回结果。

  • default 分支仍然保留用于兜底处理。


switch 表达式的三种处理方式:

  1. 返回一个具体值(如整数、字符串等)

  2. 抛出异常(如 throw new IllegalStateException(...)

  3. 使用代码块并通过 yield 返回值(Java 13 引入)

使用冒号语法 + yield(Java 13 起):

int tasteValue = switch (taste) {case SUGAR:case PIZZA:case CHOCOLATE:yield 10;case MEATBALLS:case STEAK:yield 7;case BROCCOLI:yield 4;case DIRT:yield 1;default:throw new IllegalStateException("Invalid tastable object: " + taste);
};

注意:

  • yield 只能用于 switch 表达式,不能用于 switch 语句。

  • 与传统 break 相比,yield 更明确表示这个 case 会返回一个值。

箭头语法 + 代码块 + yield(适合需要多行操作的场景):

tasteValue = switch (taste) {case SUGAR, PIZZA, CHOCOLATE -> {System.out.println(10);yield 10;}case MEATBALLS, STEAK -> {System.out.println(7);yield 7;}case BROCCOLI -> {System.out.println(4);yield 4;}case DIRT -> {System.out.println(1);yield 1;}default -> {throw new IllegalStateException("Invalid tastable object: " + taste);}
};

适用于你希望在返回值之前执行某些操作的场景(如打印、记录日志等)。


总结:

  • switch 表达式更简洁、易读,不易出错。

  • 它直接返回值,因此可以被赋值给变量。

  • 如果不是基于 enum,必须提供 default 分支以确保覆盖所有情况。

  • 箭头语法 -> 是最推荐的写法。

  • Java 13 的 yield 可用于多行代码块,进一步提高灵活性。

  • 记住:

    • switch 表达式 不能使用 break

    • switch 语句 不能使用 yield

http://www.dtcms.com/a/477204.html

相关文章:

  • 广东网站制作报价长沙百度网站推广厂家
  • 青岛网站设计系统河北建设工程信息网天行建和园
  • 佛山网站推广市场网站上的图片格式怎么做
  • 网站项目需求文档石家庄企业制作网站
  • 西安网站建设陕icp三维在线设计网站
  • 芜湖新芜湖网站建设口碑好的昆明网站建设
  • 深圳专业做网站建网站价格无版权的图片素材网站
  • 怎么查看vps网站服务器时间东莞软件外包公司
  • 北京华夏建设有限公司网站自己有服务器怎么搭建网站
  • 学会服务站建站方案国家免费职业技能培训
  • 建网站的资料wordpress 支付
  • 西部数码的vps云主机如何访问网站hao爱做网站
  • 合肥网站制作公司排名网站建设 - 碧诺网络
  • 查网站备案号昆山手机网站建设公司
  • 湖南对外建设集团网站网站建设 空间什么系统
  • 如何修改网站关键词淘宝网站建设策划报告
  • 南昌网站开发公司网站怎么免费建站
  • 谷歌网站提交入口网站实现
  • 网站建设 会计处理单机游戏大全网站开发
  • nas 可以做网站吗12306网站哪个公司做的
  • 做网站公司凡科去掉wordpress副标题
  • 嘉兴备案网站建设电子商务物流
  • 三门峡网站建设wordpress修改绑定域名
  • 手机搞笑网站模板下载安装为什么用开源建站
  • 网站logo提交广州会议室租用
  • 网站建设业务员话术定制产品网站有哪些
  • 常州市住房建设局网站平阴县建设局网站
  • 做网站怎么字体全部变粗了网站建设应注意什么
  • 在网上做试卷的网站godaddy wordpress 备
  • 制作企业网站要花多少钱做庭院的网站