Java switch使用
涉及关键字:
switch: 表达式
变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型,
case: 分支语句,需要指定当前分支的常量或者字面量
①可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号,每一个case代表一个分支
②case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面量,且不能重复
字面量:字面量是编程语言中表示固定值的符号或记号(token)
default: 默认分支
default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句
break: 终止switch
case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句
①case击穿
②default的作用示例
③break的作用示例
④default+break
⑤多个case
①case击穿
public static void main(String[] args) {a(1);System.out.println("----------------------------------");a(2);System.out.println("----------------------------------");a(0);
}private static void a(int a) {switch (a){case 1:System.out.println("aaaa11");case 2:System.out.println("aaaa22");}}
②default的作用示例
public static void main(String[] args) {b(0);System.out.println("----------------------------------");b(1);System.out.println("----------------------------------");b(2);
}private static void b(int b) {switch (b){case 1:System.out.println("bbbb11");case 2:System.out.println("bbbb22");default:System.out.println("bbbb-default");}}
③break的作用示例
public static void main(String[] args) {c(1);System.out.println("----------------------------------");c(2);System.out.println("----------------------------------");c(0);
}
private static void c(int c) {switch (c){case 1:System.out.println("cccc11");break;case 2:System.out.println("cccc22");default:System.out.println("cccc-default");}}
④default+break
public static void main(String[] args) {d(1);System.out.println("----------------------------------");d(2);System.out.println("----------------------------------");d(0);
}private static void d(int d) {switch (d){case 1:System.out.println("dddd11");break;default:System.out.println("dddd-default");break;case 2:System.out.println("dddd22");break;}}
public static void main(String[] args) {f(1);System.out.println("----------------------------------");f(2);System.out.println("----------------------------------");f(0);
}
private static void f(int f) {switch (f){case 1:System.out.println("ffff11");break;default:System.out.println("ffff-default");case 2:System.out.println("ffff22");break;}}
⑤多个case
public static void main(String[] args) {e(1);System.out.println("----------------------------------");e(2);System.out.println("----------------------------------");e(0);System.out.println("----------------------------------");e(3);
}
private static void e(int e) {switch (e){case 1:case 2:System.out.println("eeee11");break;case 3:case 4:System.out.println("eeee22");break;default:System.out.println("eeee-default");break;}}
综上:
1、正常情况下,针对不是最后一个的case分支,均需要配合break使用来终止switch语句,防止case击穿
2、多个case可以使用同一个分支,详见”⑤多个case“
3、有default分支的话,位置最好放在最后,此时不需要添加break;如果放在中间的位置,则需要配合break使用,用以终止switch语句。详见” ④default+break“