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;
     }

通常会使用多种形式选择结构综合来解决较复杂的问题

 

  

 

posted on 2020-04-13 21:28  云梦曦  阅读(197)  评论(0编辑  收藏  举报