switch
int tag = 3;
switch (tag){
case 1:
System.out.println("111");
break;
case 2:
System.out.println("222");
break;
case 3, 4:
System.out.println("3 or 4");
break;
default:
System.out.println("else");
}
- tag 可以是byte, short, int, char, String类型的常量表达式。
- 多个标签可以合并,之间用逗号分隔
- 每个标签中的 statement 部分是一条语句,也可以是
{}
包裹的一个块 - 顺序匹配,进入第一个与 tag 相匹配的 case 执行
- 进入某个 case 执行后,若没有 break,将顺序执行下面的 case 而不再进行匹配
enhanced switch
增强的 switch 具有返回值,整个语句可以作为一个表达式,在不同情况下返回不同的值,而不再只能是不同情况下执行不同的语句。
int tag = 1;
String s =
switch (tag) {
case 1 -> "111";
case 2 -> "222";
default -> "else";
};
- 由于需要返回值,故需要确保在所有的情况下都有返回值,所以需要涵盖所有可能的情况
- 不再需要 break
- 使用箭头
- 可以进行 case 的合并,之间以逗号分隔
- Since java7