📅  最后修改于: 2023-12-03 15:31:57.504000             🧑  作者: Mango
在Java中,switch语句作为一种流程控制语句,能够替代多个if-else语句。它将一个表达式与多个常量值作比较,每个常量值称作一个case,并且根据表达式的值执行相应的代码块。
switch(expression) {
case value1 :
// 代码块1
break;
case value2 :
// 代码块2
break;
case value3 :
// 代码块3
break;
// You can have any number of case statements.
default : // 可选
// 代码块4
}
在上面的代码片段中,expression为要比较的表达式,它的数据类型可以是int、byte、short、char等整数类型,以及枚举类型和字符串类型;value1、value2、value3是与表达式进行比较的常量值;default:是可选的,它表示如果表达式的值与所有的常量值都不匹配,那么就执行default后面的代码块。
switch语句的匹配规则是:如果expression的值与某个case后面的常量值相等,那么就执行该case后面的代码块,并且在执行完代码块之后跳出switch语句;如果不相等,则继续与下一个case进行匹配,如果都不匹配,则执行default后面的代码块。
流程图如下:
switch (expression) {
case value1:
// TODO 做些事情
case value2:
// TODO 做些事情
case value3:
// TODO 做些事情
default:
// TODO 做些事情
}
如果expression的值为value1,则执行TODO1、TODO2、TODO3、TODO4代码块;如果expression的值为value2,则执行TODO2、TODO3、TODO4代码块;如果expression的值为value3,则执行TODO3、TODO4代码块;如果expression的值与所有的case匹配不上,则执行default后面的代码块。
int day = 3;
String dayName;
switch (day) {
case 1:
dayName = "星期一";
break;
case 2:
dayName = "星期二";
break;
case 3:
dayName = "星期三";
break;
case 4:
dayName = "星期四";
break;
case 5:
dayName = "星期五";
break;
case 6:
dayName = "星期六";
break;
case 7:
dayName = "星期日";
break;
default:
dayName = "无效日期";
}
System.out.println(dayName);
上述代码会输出:星期三。因为day的值为3,所以匹配case 3,并执行case 3下面的代码块,赋值dayName为“星期三”。