当我们在Java程序中需要根据不同的值来执行不同的操作时,我们可以使用switch语句。在Java中,switch语句有三种不同的用法方式:匹配一个具体的值、匹配一段范围、以及匹配一个枚举值。
匹配一个具体的值
当我们需要根据不同的值来执行不同的操作时,我们通常会使用switch语句的第一种用法方式:匹配一个具体的值。以下是一个示例:
int num = 4;
String numString;
switch (num) {
case 1:
numString = "One";
break;
case 2:
numString = "Two";
break;
case 3:
numString = "Three";
break;
default:
numString = "Other";
break;
}
System.out.println(numString);
在上面的示例中,我们定义了一个整数变量num,然后使用switch语句来根据num的值,分别执行不同的操作。我们使用了四个case分支来匹配不同的值,如果num的值匹配到了其中任意一个case分支,就会执行该分支的代码块。如果num的值没有匹配到任何一个case分支,就会执行default分支的代码块。在本示例中,由于num的值为4,因此会执行default分支,并输出"Other"。
匹配一段范围
除了匹配具体的值之外,我们还可以使用switch语句的第二种用法方式:匹配一段范围。例如,我们可以使用以下代码来将不同区间的分数转换为不同等级:
double score = 85.5;
String level;
switch ((int) score / 10) {
case 9:
case 10:
level = "A";
break;
case 8:
level = "B";
break;
case 7:
level = "C";
break;
case 6:
level = "D";
break;
default:
level = "E";
break;
}
System.out.println(level);
在上面的示例中,我们定义了一个double类型的分数变量score,然后使用switch语句来根据score所处的分数区间,转换为不同的等级。我们使用了五个case分支,其中在case 9和case 10中,我们共同执行了等级为"A"的代码块,因为9和10都属于A等级的分数范围。在case 8中,我们执行了等级为"B"的代码块,以此类推。如果score的值没有匹配到任何一个case分支,就会执行default分支的代码块。在本示例中,由于score的值为85.5,因此它所处的分数区间为85-89,因此将执行case 8中的代码块,并输出"B"。
匹配一个枚举值
在Java中,我们可以定义一个枚举类型,并使用switch语句来匹配枚举值。例如,我们可以使用以下代码来输出一周中的不同工作日:
enum Day {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
Day day = Day.MONDAY;
String dayString;
switch (day) {
case MONDAY:
case TUESDAY:
case WEDNESDAY:
case THURSDAY:
case FRIDAY:
dayString = "Weekday";
break;
case SATURDAY:
case SUNDAY:
dayString = "Weekend";
break;
default:
dayString = "Other";
break;
}
System.out.println(dayString);
在上面的示例中,我们定义了一个枚举类型Day,并将变量day的值设置为Day.MONDAY。然后使用switch语句来匹配day的值,输出其所属的工作日类型。在case MONDAY到case FRIDAY的分支中,我们共同执行了输出"Weekday"的代码块,表示这些工作日是工作日。在case SATURDAY和case SUNDAY的分支中,我们共同执行了输出"Weekend"的代码块,表示这些日子是周末。如果day的值没有匹配到任何一个case分支,就会执行default分支的代码块。在本示例中,由于day的值为MONDAY,因此它将执行case MONDAY中的代码块,并输出"Weekday"。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中switch的三种用法方式 - Python技术站