一、基本语法
switch语句是Java中的一种流程控制语句,可以根据表达式的值,匹配相应的case分支执行对应代码。其基本语法如下:
switch(expression){
case value1:
//执行代码块1
break;
case value2:
//执行代码块2
break;
...
default:
//执行默认代码块
}
其中expression为表达式,value1、value2为常量值。case分支可以有多个,对应不同的常量值。当expression的值与某个case的常量值相等时,该case分支中的代码块将被执行。default分支可选,当所有case分支都不满足时,将执行default分支中的代码块。
二、兼容性问题
在Java SE 5.0版本之前,switch语句只能使用枚举类型、整数类型(byte、short、char、int)和String类型作为表达式。在Java SE 7版本之后,switch语句可以使用枚举类型、整数类型、String类型以及对应包装类和枚举类型的可转换类型,比如byte、short、char、int。
需要注意的是,对于可转换类型,Java会先将其转换为对应整数类型(int、byte、short),然后再进行匹配判断。如果表达式的类型不符合要求,编译器将报错。
三、switch语句的注意事项
1、case分支的常量值不能重复
如下例子:
int i = 1;
switch(i){
case 1:
//执行代码块1
break;
case 1:
//执行代码块2
break;
}
由于case常量值重复,编译器将报错。
2、case分支中不能有重复代码
如下例子:
int i = 1;
switch(i){
case 1:
//执行代码块1
break;
case 2:
//执行代码块1
break;
}
由于case分支存在重复代码,编译器将报错。
3、case分支的顺序
case分支的顺序不会影响表达式的值与常量值的匹配,但是顺序的改变会影响程序的效率。在选择case分支的常量值时,应该把最可能出现的常量值放在前面,以提高程序的效率。
四、示例代码
下面是一个使用switch语句的示例代码:
public class SwitchDemo {
public static void main(String[] args) {
int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println("Month " + month + " is " + monthString);
}
}
以上代码是一个根据月份输出月份名称的程序。在switch语句的表达式中,变量month的值为8。根据case分支中的常量值,匹配到case 8分支,执行其中打印字符串的代码块,输出”Month 8 is August”。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/181709.html
微信扫一扫
支付宝扫一扫