Java中switch的三种用法方式小结
作者:李昊哲小课 时间:2023-11-24 03:40:21
从java14开始, switch语句有了一个很大的调整, 这就让swicth语句有了更多的操作和选择,在代码上,更加的简便灵活.
switch 标准方式
switch - > 用法:
switch yield 用法:
标准方式
int dayOfWeek = 2;
switch (dayOfWeek) {
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
case 4:
System.out.println("星期四");
case 5:
System.out.println("星期五");
case 6:
System.out.println("星期六");
default:
System.out.println("星期日");
}
輸出如下:
星期二
星期三
星期四
星期五
星期六
星期日
从输出结果发现case代码块被穿透了,使用break防止case代码执行穿透,代码如下:
int dayOfWeek = 2;
switch (dayOfWeek) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
default:
System.out.println("星期日");
break;
}
輸出如下:
星期二
switch - > 用法:
使用switch标准方式编写代码太多的break造成代码冗余可读性不高 可以借助函数式接口和lambda表达式简化书写
代码如下:
int dayOfWeek = 2;
switch (dayOfWeek) {
case 1 -> System.out.println("星期一");
case 2 -> System.out.println("星期二");
case 3 -> System.out.println("星期三");
case 4 -> System.out.println("星期四");
case 5 -> System.out.println("星期五");
case 6 -> System.out.println("星期六");
default -> System.out.println("星期日");
}
输出结果如下:
星期二
switch yield 用法:返回值
先来开一段标准模式的代码:
String weekday = null;
int dayOfWeek = 2;
switch (dayOfWeek) {
case 1:
weekday = "星期一";
break;
case 2:
weekday = "星期二";
break;
case 3:
weekday = "星期三";
break;
case 4:
weekday = "星期四";
break;
case 5:
weekday = "星期五";
break;
case 6:
weekday = "星期六";
break;
default:
weekday = "星期日";
break;
}
System.out.println(weekday);
输出结果如下:
星期二
从上面代码不难看出我们通过条件匹配为变量赋值,再来看看switch yield的简化写法
int dayOfWeek = 2;
String weekday = switch (dayOfWeek) {
case 1:
yield "星期一";
case 2:
yield "星期二";
case 3:
yield "星期三";
case 4:
yield "星期四";
case 5:
yield "星期五";
case 6:
yield "星期六";
default:
yield "星期日";
};
System.out.println(weekday);
输出结果:
星期二
来源:https://blog.csdn.net/qq_24330181/article/details/124425837
标签:Java,switch
0
投稿
猜你喜欢
详解C语言内核字符串转换方法
2022-12-09 13:53:55
springboot集成mybatis plus和dynamic-datasource注意事项说明
2023-12-05 03:54:21
AQS同步组件Semaphore信号量案例剖析
2023-11-27 14:27:04
Spring Boot启动时调用自己的非web逻辑
2022-02-15 11:40:10
Java1.8中StringJoiner的使用及源码详析
2021-09-09 14:37:32
C#开发WinForm清空DataGridView控件绑定的数据
2022-12-01 11:22:08
java POI解析Excel 之数据转换公用方法(推荐)
2023-06-10 11:04:53
C#自定义日志记录
2021-06-11 23:44:47
java设计模式--三种工厂模式详解
2023-11-29 09:54:06
Java设计模式编程之解释器模式的简单讲解
2022-01-24 16:03:32
java实现简易超市管理系统 附源码下载
2021-11-05 18:58:30
详解SpringBoot注解读取配置文件的方式
2023-08-05 02:51:16
Android实现显示和隐藏密码功能的示例代码
2022-12-14 23:40:09
Android开发实现判断通知栏是否打开及前往设置页面的方法
2022-10-21 10:43:45
springboot+jersey+tomcat实现跨域方式上传文件到服务器的方式
2023-08-16 10:26:45
c#中Winform实现多线程异步更新UI(进度及状态信息)
2022-08-26 05:54:40
C#词法分析器之词法分析的使用详解
2022-01-26 04:22:13
简单了解JAVA public class与class区别
2023-11-15 23:59:26
SpringData如何通过@Query注解支持JPA语句和原生SQL语句
2022-08-26 22:07:29
Android 基于Socket的聊天应用实例(二)
2023-11-02 21:48:32