能否将给定的Java if语句转换为switch语句?
把魔法日期判断转成Switch语句的实现
当然可以!虽然原逻辑用 if-else 来写会更直观,但我们完全可以把它转换成 switch 语句来实现。这里提供两种常见的写法:
1. 基于整数标记的传统Switch写法
我们可以先把判断结果转换成一个整数标记(1代表符合魔法日期条件,0代表不符合),再用switch匹配这个标记:
// 假设Month、Day、Year都是已定义好的整数变量 int magicFlag = (Month * Day == Year) ? 1 : 0; switch(magicFlag) { case 1: System.out.println("The date is magic"); break; case 0: System.out.println("The date is not magic"); break; }
2. Java 12+ 的Switch表达式写法
如果你的项目使用Java 12及以上版本,可以用更简洁的switch表达式,直接返回结果:
// 假设Month、Day、Year都是已定义好的整数变量 String output = switch(Month * Day == Year) { case true -> "The date is magic"; case false -> "The date is not magic"; }; System.out.println(output);
小提醒
其实对于这种只有两个分支的逻辑,原有的 if-else 写法可读性更高,switch在这里更多是为了满足特定的语法转换需求~
内容的提问来源于stack exchange,提问作者chayo
相关产品推荐
相关产品推荐

