目录
1、switch选择结构
switch (表达式) {
case 常量 1: //计算表达式的值,如果等于常量1;
//语句;
break; //如果需要每个case执行完后跳出,在每个case后不要忘记写break;
case 常量 2:
//语句;
break;
.......
default: //如果没有找到匹配的值;
//语句;
break;
}
(1)注意事项:
①表达式可用类型:int、short、byte、char、枚举型、String类型(jdk1.5版本以后);
②switch中case常量值不能相同,且冒号(" : ")不可缺失;
③break的作用是结束switch选择结构,若没有break,会产生“case穿透”现象(执行多个case),这个现象可以合理的使用;
④default语句可以写在switch结构中的任意位置,但一般都写在末尾;
⑤default语句可以省略不写,当表达式的值与所有case常量值不匹配并且没有default语句时,switch结构不执行;
//例:
int choose = input.nextInt(); //输入的月份
switch (choose) {
case 1: //没有写break,会产生“case穿透”现象(执行多个case),合理的使用
case 2:
case 3:
System.out.println("一起宅家!");
break;
case 7: //7月份推荐;
System.out.println("7月:青岛、大连,一起吹吹海风吧!");
break;
case 8:
System.out.println("8月:西藏,一个充满神秘的圣地!");
break;
... ...
default: //其他月份
System.out.println("进入“去哪儿游”常规推荐");
break;
}
2、switch与多重if选择结构的区别
(1)相同点:都是用来处理多分支条件的结构;
(2)不同点:
①语法不同;
②switch选择结构:只能处理等值条件判断的情况;
③多重if选择结构:既可以处理等值条件判断的情况,也可以特别适合某个变量的取值范围处于某个连续区间情况;
3、处理输入异常
(1)使用Scanner对象的hasNextInt()方法,可以判断用户从键盘输入的字符是否是合法的数字;
(2)Scanner类的常用方法:
方法 | 描述 |
input.hasNext() | 判断输入的数据是否为String类型 |
input.hasNextInt() | 判断输入的数据是否为int类型 |
input.hasNextDouble() | 判断输入的数据是否为double类型 |
input.hasNextBoolean() | 判断输入的数据是否为boolean类型 |
//例:
if(input.hasNextInt()) {
int num = input.nextInt();
switch (num) {
case 1:
//显示主菜单
case 2:
System.out.println("注册功能待实现");
break;
case 3:
//退出系统
default:
System.out.println("您的输入有误!");
break;
}
} else {
System.out.println("请输入正确的数字!");
}