0 写在前面
在处理多个选项时,使用 if/else 结构显得有些笨拙。
switch 语句将从与选项值相匹配的 case标签开始执行,直到遇到 break语句,或者执行到 switch 语句的结束处为止。如果没有相匹配的 case 标签,而有 default 子句,就执行这个子句。
最后的default类似于if/else中的最后一个else。但是有很大的区别。
虽然可以替代if/else。但是在实际开发中,switch基本不使用。
1 解释
一般形式:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
…
case 常量表达式n: 语句n;
default: 语句n+1;
}
流程图举例:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
case 常量表达式3: 语句3;
case 常量表达式4: 语句4;
default: default语句;
}
其中:
case 标签可以是:
类型为char、byte、short 或int 的常量表达式
枚举常量。
case 标签还可以是字符串字面量
2 代码举例
String str = "zhangsan";
String name = "";
switch (str) {
case "zhangsan": name = "zhangsan";break;
case "lisi": name = "lisi";break;
case "wangwu": name = "wangwu";break;
case "zhaoliu": name = "zhaoliu";break;
case "jack": name = "jack";break;
}
System.out.println("name:"+name);
多重选择。当选择上zhangsan时,就把名字赋值。
运行结果
name:zhangsan
结果没问题
写在末尾
1.case后的常量表达式不能相同;
- case后的语句可以有多个且不用花括号括起来;
3.case和default子句的先后顺序可以先后变动,default子句可以省略不用;