switch
switch语句主要用于判断一个变量与一系列中的某个值是否相等,每一个值都称为一个分支,同时switch语句可以和if-else语句相互转换
语法格式
switch (expression) {
case value:
// do something
break;
case value:
// do something
break;
default:
}
支持的变量类型:
byte
short
int
char
String(Java1.7及以后版本)
规则:
- 如果多个分支的处理方式相同时,break可以省略。
- 如果switch语句比较的是String类型的值,那么case后面的值必须为
字符串常量
或字面量
- 当变量的值与case语句后的值相等时,该case语句后的语句开始执行,一直到出现
break
关键字结束 - switch语句可以拥有多个case分支,每个case分支后必须跟上一个比较的值和冒号
- switch语句默认包含一个default分支,该分支一般是语句中的最后一个分支,可以放在任何位置,建议放在最后;default分支在没有分支与变量值相等时执行,并且不需要break
案例一
public class SwitchTest {
public static void main(String[] args) {
int grades = 80;
switch (grades) {
case 50:
System.out.println("还需努力");
break;
case 60:
case 70:
System.out.println("中");
break;
case 80:
System.out.println("良");
break;
case 90:
System.out.println("优");
break;
default:
System.out.println("default");
}
System.out.println("你的最后得分为:" + grades);
}
}
输出结果:
良
你的最后得分为:80
案例二:无匹配的case分支
public class SwitchTest {
public static void main(String[] args) {
int i = 10;
switch (i) {
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
default:
System.out.println("default");
}
}
}
输出结果:
default
案例三:有匹配值,无break
public class SwitchTest {
public static void main(String[] args) {
int i = 1;
switch (i) {
case 0:
System.out.println("0");
case 1:
System.out.println("1");
case 2:
System.out.println("2");
default:
System.out.println("default");
}
}
}
输出结果:
1
2
default