zoukankan      html  css  js  c++  java
  • 选择结构(二)

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

      

  • 相关阅读:
    UVA10163 Storage Keepers (动态规划)
    Uva12174 Shuffle(滑动窗口)
    上决╇ф人员分配问题 (背包问题)
    UVA
    UVALive
    poj1151 Atlantis (线段树+扫描线+离散化)
    poj2528 Mayor's posters (线段树+离散化)
    php 调用微信虚拟支付
    ptoto文件转换的java文件,报错 UnusedPrivateParameter
    redis 安装及启动时警告处理
  • 原文地址:https://www.cnblogs.com/yun---meng/p/12694066.html
Copyright © 2011-2022 走看看