switch…case
基本结构:
switch(key) {
case value :
break;
default :
break;
}
- 实际事例
int weekday = 3;
switch (weekday) {
case 1:
System.out.println("星期一");
break;//中断 终止
case 2:
System.out.println("星期二");
break;
default:
System.out.println("其他case都不满足条件,则执行default中的代码");
break;
}
- 那么基本结构的 key 能否是字符串呢??
String nameString = "zhangsan";
switch (nameString) {
case "zhangsan":
System.out.println("key 可以为String");
break;
String nameString = "zhangsan";
switch (nameString) {
case "zhangsan":
System.out.println("key 可以为String");
break;
default:
break;
}
由上面简单的例子,得知switch…case和if一样,只会执break行一个(),隶属于分支语句
总结:
- switch…case真实开发时 用的不多,但是倘若见到的话,要知道是干什么的
- break 终止语句,但是咧,break也可以去掉。 具体要不要去掉,依据逻辑。
- 所有的switch…case 都可以转化成 if…else,反之,不成立。
- key 必须 int或String(JDK1.7 or later)或enum(枚举)
- 有些人偏爱switch…case,是因为在写法比if工整
- switch…case语句的核心其实就是判断等与不等,但是 if 比它更强大一点。
问题总结:
-
java中的switch选择结构可以使用数据类型的数据:
⑴ int
⑵ char
⑶ byte
⑷ short
⑸ 枚举
⑹ String : ps:对JDK版本有要求,必须为1.7及以上版本 -
对于语句中 break 的存在与否的运行方式
⑴ 没有break 的
int weekday = 2;
switch (weekday) {
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
// 匹配之后,如果没有遇到break,则继续执行
case 3:
System.out.println("星期三");
// break; // break 以下都不执行
case 4:
System.out.println("星期四");
default:
System.out.println("其他case都不满足条件,则执行default中的代码");
}
⑵ 没有break 的
int weekday = 2;
switch (weekday) {
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
// 匹配之后,如果没有遇到break,则继续执行
case 3:
System.out.println("星期三");
break; // break 以下都不执行
case 4:
System.out.println("星期四");
default:
System.out.println("其他case都不满足条件,则执行default中的代码");
}