java case 多个值_Java switch多值匹配操作详解

这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

我们都知道 switch 用来走流程分支,大多情况下用来匹配单个值,如下面的例子所示:

/**

* @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");

}

}

大概的意思就是,周一到周五输出:1,周六到周日输出:0,默认输出-1。

这样写,很多重复的逻辑,冗余了。

也许这个例子不是很合适,用 if/ else 更恰当,但这只是个例子,实际开发中肯定会有某几个 case 匹配同一段逻辑的情况。

那么,如何让多个 case 匹配同一段逻辑呢?

如下面例子所示:

/**

* @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 写逻辑就行了。

格式化后就是这样了:

/**

* @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 中还可以更骚。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Java中,可以使用逗号分隔多个来表示一个case多个。例如: ``` switch (value) { case 1: case 2: case 3: System.out.println("Value is 1, 2, or 3"); break; case 4: System.out.println("Value is 4"); break; default: System.out.println("Value is not 1, 2, 3, or 4"); } ``` 在上面的代码中,当value的为1、2或3时,会执行第一个case的代码块。这是因为这三个都被列在了同一个case中。 ### 回答2: Javaswitch语句是一种控制流语句,用于基于表达式选择要执行的操作。在Java中,switch语句的每个case标签必须是一个常量表达式,也就是说,其必须在编译时可以确定。在使用switch语句时,如果需要匹配多个,可以使用一个case多值的语法。 在Java 7及之前的版本中,使用一个case多值的语法需要使用多个case标签,并将它们放置在一个代码块中。例如: ``` switch (fruit) { case "apple": case "orange": case "banana": System.out.println("This is a fruit."); break; case "potato": System.out.println("This is not a fruit."); break; default: System.out.println("Unknown item."); break; } ``` 在上面的例子中,如果fruit的为"apple"、"orange"或"banana",则会执行第一个case标签中的代码块。如果fruit的为"potato",则会执行第二个case标签中的代码块。如果fruit的既不是上述三种水果也不是"potato",则会执行default标签中的代码块。 在Java 7及之后的版本中,可以使用一个case标签来匹配多个,而不需要使用多个case标签。例如: ``` switch (fruit) { case "apple", "orange", "banana" -> System.out.println("This is a fruit."); case "potato" -> System.out.println("This is not a fruit."); default -> System.out.println("Unknown item."); } ``` 在上面的例子中,使用了箭头语法(->)将代码块与case标签分开,并使用逗号分隔多个。如果fruit的为"apple"、"orange"或"banana",则会执行第一个case标签中的代码块。如果fruit的为"potato",则会执行第二个case标签中的代码块。如果fruit的既不是上述三种水果也不是"potato",则会执行default标签中的代码块。 需要注意的是,虽然在Java 7及之后的版本中可以使用一个case标签来匹配多个,但这只适用于字符串和枚举类型,不能用于其他基本类型和对象类型。此外,在使用一个case多值时,所有的必须具有相同的类型,并且不能包含重复的。 ### 回答3: Java编程语言中的switch循环结构是一种方便的控制流语句,它可以用于根据不同的条件执行不同的代码块。通常情况下,switch结构的使用方式是通过一个或多个case语句来判断执行哪个代码块。但是在某些情况下,我们可能需要让一个case语句对应多个不同的。这就是Java中的“switch一个case多值”问题。 在Java 7之前,如果想要实现switch一个case多值的功能,通常可以通过使用多个单独的case语句来实现。比如,我们想要在一个switch结构中判断一个数字n是否等于1、2、3中的任意一个,可以像下面这样写: switch(n){ case 1: case 2: case 3: System.out.println("n is 1, 2, or 3"); break; default: System.out.println("n is not 1, 2, or 3"); } 这个例子中,我们使用了三个不同的case语句来判断n是否等于1、2、3中的任意一个。如果n等于其中任何一个数,那么就会执行相应的代码块;否则,就会执行default语句块中的代码。 不过,在Java 7之后,我们可以更方便地实现switch一个case多值的功能。在Java 7中,我们只需要在一个case语句中用逗号分隔多个,就可以实现一个case语句对应多个的效果。比如,我们可以像下面这样修改上面的例子: switch(n){ case 1, 2, 3: System.out.println("n is 1, 2, or 3"); break; default: System.out.println("n is not 1, 2, or 3"); } 这个例子中,我们使用了一个case语句来判断n是否等于1、2、3中的任意一个。如果n等于其中任何一个数,那么就会执行相应的代码块;否则,就会执行default语句块中的代码。 总的来说,switch一个case多值的功能在Java编程中很常用,尤其是在需要判断多个相同的变量时。使用Java 7及以上的版本,我们可以更加方便地实现这个功能,提高编码效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值