对一个switch case语句使用两个值

在我的代码中,该程序根据用户输入的文本执行某些操作。我的代码如下:

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语句中不起作用,但是有什么我可以使用的东西。

回答:

您可以使用具有以下两个CASE语句。

  case text1: 

case text4:{

//blah

break;

}

请参见此示例:该代码示例计算特定月份中的天数:

class SwitchDemo {

public static void main(String[] args) {

int month = 2;

int year = 2000;

int numDays = 0;

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

numDays = 31;

break;

case 4:

case 6:

case 9:

case 11:

numDays = 30;

break;

case 2:

if (((year % 4 == 0) &&

!(year % 100 == 0))

|| (year % 400 == 0))

numDays = 29;

else

numDays = 28;

break;

default:

System.out.println("Invalid month.");

break;

}

System.out.println("Number of Days = "

+ numDays);

}

}

这是代码的输出:

Number of Days = 29

贯穿:

另一个兴趣点是中断声明。每个break语句终止封闭的switch语句。控制流从切换块后的第一条语句继续。break语句是必需的,因为如果没有它们,则是switch块中的fall

through语句:匹配case标签之后的所有语句将按顺序执行,而不管后续case标签的表达式如何,直到遇到break语句为止。

示例代码:

public class SwitchFallThrough {

public static void main(String[] args) {

java.util.ArrayList<String> futureMonths =

new java.util.ArrayList<String>();

int month = 8;

switch (month) {

case 1: futureMonths.add("January");

case 2: futureMonths.add("February");

case 3: futureMonths.add("March");

case 4: futureMonths.add("April");

case 5: futureMonths.add("May");

case 6: futureMonths.add("June");

case 7: futureMonths.add("July");

case 8: futureMonths.add("August");

case 9: futureMonths.add("September");

case 10: futureMonths.add("October");

case 11: futureMonths.add("November");

case 12: futureMonths.add("December");

default: break;

}

if (futureMonths.isEmpty()) {

System.out.println("Invalid month number");

} else {

for (String monthName : futureMonths) {

System.out.println(monthName);

}

}

}

}

这是代码的输出:

August

September

October

November

December

在switch语句中使用字符串

在Java SE 7和更高版本中,可以在switch语句的表达式中使用String对象。以下代码示例,基于名为month的字符串的值显示月份数:

public class StringSwitchDemo {

public static int getMonthNumber(String month) {

int monthNumber = 0;

if (month == null) {

return monthNumber;

}

switch (month.toLowerCase()) {

case "january":

monthNumber = 1;

break;

case "february":

monthNumber = 2;

break;

case "march":

monthNumber = 3;

break;

case "april":

monthNumber = 4;

break;

case "may":

monthNumber = 5;

break;

case "june":

monthNumber = 6;

break;

case "july":

monthNumber = 7;

break;

case "august":

monthNumber = 8;

break;

case "september":

monthNumber = 9;

break;

case "october":

monthNumber = 10;

break;

case "november":

monthNumber = 11;

break;

case "december":

monthNumber = 12;

break;

default:

monthNumber = 0;

break;

}

return monthNumber;

}

public static void main(String[] args) {

String month = "August";

int returnedMonthNumber =

StringSwitchDemo.getMonthNumber(month);

if (returnedMonthNumber == 0) {

System.out.println("Invalid month");

} else {

System.out.println(returnedMonthNumber);

}

}

}

该代码的输出为8。

从Java文档

以上是 对一个switch case语句使用两个值 的全部内容, 来源链接: utcz.com/qa/425958.html

回到顶部