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;
}
通常会使用多种形式选择结构综合来解决较复杂的问题