在我的代码中,程序根据用户输入的文本执行一些操作。我的代码如下:
switch (name) {
case text1: {
//blah
break;
}
case text2: {
//blah
break;
}
case text3: {
//blah
break;
}
case text4: {
//blah
break;
}
但是,案例text1和text4中的代码是相同的。因此,我想知道是否有可能让我实现一些像
case text1||text4: {
//blah
break;
}
我知道||操作符在case语句中不起作用,但是否有类似的东西我可以使用。
总结:用逗号分隔
switch (name) {
case text1 , text4 -> doX() ;
case text2 -> doY() ;
case text3 -> doZ() ;
}
转换表达式
在Java 14及更高版本中集成了JEP 361: Switch Expressions之后,可以使用新形式的开关标签,在多个值之间使用逗号。
case text1, text4 -> {
//blah
}
或者从其中一个答案中重新措辞演示,比如:-
public class RephraseDemo {
public static void main(String[] args) {
int month = 9;
int year = 2018;
int numDays = 0;
switch (month) {
case 1, 3, 5, 7, 8, 10, 12 ->{
numDays = 31;
}
case 4, 6, 9, 11 ->{
numDays = 30;
}
case 2 ->{
if (((year % 4 == 0) &&
!(year % 100 == 0))
|| (year % 400 == 0))
numDays = 29;
else
numDays = 28;
}
default ->{
System.out.println("Invalid month.");
}
}
System.out.println("Number of Days = " + numDays);
}
}
总结:用逗号分隔
switch (name) {
case text1 , text4 -> doX() ;
case text2 -> doY() ;
case text3 -> doZ() ;
}
转换表达式
在Java 14及更高版本中集成了JEP 361: Switch Expressions之后,可以使用新形式的开关标签,在多个值之间使用逗号。
case text1, text4 -> {
//blah
}
或者从其中一个答案中重新措辞演示,比如:-
public class RephraseDemo {
public static void main(String[] args) {
int month = 9;
int year = 2018;
int numDays = 0;
switch (month) {
case 1, 3, 5, 7, 8, 10, 12 ->{
numDays = 31;
}
case 4, 6, 9, 11 ->{
numDays = 30;
}
case 2 ->{
if (((year % 4 == 0) &&
!(year % 100 == 0))
|| (year % 400 == 0))
numDays = 29;
else
numDays = 28;
}
default ->{
System.out.println("Invalid month.");
}
}
System.out.println("Number of Days = " + numDays);
}
}