1.为什么使用switch结构
使用多重if选择结构实现 ------- 缺点:结构复杂,啰嗦 使用switch选择结构解决 ------- 特点:条件为等值判断 所以{代码繁多}时建议使用switch选择结构
2.switch选择结构
switch选择结构 语法: switch (表达式) { switch(num){ case 常量1: case 1: 语句; System.out.println("星期六"); break; break; case 常量2: case 2: 语句; System.out.println("星期日"); break; break; ...... default: default: System.out.println("对不起您输入的数字非法"); 语句; break; break; } / * switch表达式类型:int、short、byte、char、枚举、String类型 *** 如果需要每个case执行完后跳出,在每个case后不要忘记写break; ***
default块顺序可以变动,但要注意其执行顺序。通常,default块放在末尾,也可以省略
switch执行原理: 当switch的小括号和case分支条件一一匹配如果匹配成功就执行case中的java语句,如果没有break进入下一个分支执行。自上而下执行,没有break就会发生穿透现象,避免穿透就加break.,
如果所有分支case都没有匹配成功当有defalut就会执行它的java语句。 JDK6只有int类型 JDK新特性有int或String类型。 swith和case后面只能是int或String类型的值或变量,byte,short,char可以在case和switch中使用因他们可以自动转换为int。 */
3.switch与多重if选择结构
相同点:都是用来处理多分支条件的结构。 不同点:switch语句只能处理等值条件判断的情况,而且条件只能是整型变量或字符型变量。 多重if选择结构没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况 总结: if选择结构 基本if选择结构: 处理单一或组合条件的情况 if-else选择结构:处理简单的条件分支情况 多重if选择结构:处理复杂的条件分支情况 嵌套if选择结构:用于较为复杂的流程控制 switch选择结构 多重分支并且条件判断是等值判断的情况
4.处理系统异常
健壮性:Scanner对象的hasNextInt()方法,可以判断用户从键盘输入的字符是否是合法的数字 eg: Scanner input = new Scanner(System.in); if (input.hasNextInt()) { //如果输入的是数字 int num = input.nextInt(); switch (num) { case 1: //显示系统主菜单; break; case 2: System.out.println("谢谢您的使用!"); break; default: System.out.println("输入错误。");break; } } else { //如果输入的不是数字 System.out.println("请输入正确的数字!"); }
*****总结
switch选择结构 多路分支选择结构 适用于条件判断是等值判断的情况 switch (表达式) { case 常量 1: //语句; break; case 常量 2: //语句; break; // … default: //语句; break; } 通常会使用多种形式选择结构综合来解决较复杂的问题