• switch选择结构


    1、定义


    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 

    2、语法


    switch case 语句语法格式如下:

          

    1.  switch(表达式){
    2.             case 常量 1:
    3.                 语句;
    4.                 break;    //可选
    5.             case 常量 2:
    6.                 语句;
    7.                 break;    //可选
    8.             ......        //你可以有任意数量的case语句
    9.             default:      //可选 
    10.                 语句;
    11.                 break;
    12.         }


    -->switch、case、break、default是Java关键字

    -->switch后的表达式可以是int、short、byte、char、枚举类型、从 JDK1.7开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

    -->case用于与表达式进行匹配,switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

    -->break用于终止后续语句的执行。

    -->default是可选的,当其他条件都不匹配时执行default。

    switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。

    1. public class Test {
    2.    public static void main(String args[]){
    3.       //char grade = args[0].charAt(0);
    4.       char grade = 'C';
    5.  
    6.       switch(grade)
    7.       {
    8.          case 'A' :
    9.             System.out.println("优秀"); 
    10.             break;
    11.          case 'B' :
    12.          case 'C' :
    13.             System.out.println("良好");
    14.             break;
    15.          case 'D' :
    16.             System.out.println("及格");
    17.             break;
    18.          case 'F' :
    19.             System.out.println("你需要再努力努力");
    20.             break;
    21.          default :
    22.             System.out.println("未知等级");
    23.       }
    24.       System.out.println("你的等级是 " + grade);
    25.    }
    26. }

    3、执行规律


    1)计算switch后表达式的值。

    2)将计算结果从上至下依次与case后的常量值比较。

    3)如果相等就执行该常量后的代码块,遇到break语句就结束。

    4)如果与任何一个case后的常量值都不匹配,就执行default中的语句。

    注意事项:

    1)如果case后没有break语句,程序将继续向下执行,直到遇到break语句或switch语句结束----“case穿透”。

      

    1.  public static void main(String[] args) {
    2.         /*
    3.          * 根据输入的月份来输出月份属于哪个季节
    4.          * 
    5.          * 12 1 2 冬季
    6.          * 3 4 5 春季
    7.          * 6 7 8 夏季
    8.          * 9 10 11 秋季
    9.          * 
    10.          */
    11.         
    12.         Scanner sc = new Scanner(System.in);
    13.         System.out.println("请输入月份(1-12):");
    14.         int month =sc.nextInt();
    15.         
    16.         switch(month){
    17.         case 12:
    18. //            System.out.println("冬季");
    19. //            break;
    20.         case 1:
    21. //            System.out.println("冬季");
    22. //            break;
    23.         case 2:
    24.             System.out.println("冬季");    //输入12,1月时,穿透进入case 2:中
    25.             break;
    26.         case 3:
    27. //            System.out.println("春季");
    28. //            break;
    29.         case 4:
    30. //            System.out.println("春季");
    31. //            break;
    32.         case 5:
    33.             System.out.println("春季");    //输入3,4月时,穿透进入case 5:中
    34.             break;
    35.         case 6:
    36. //            System.out.println("夏季");
    37. //            break;
    38.         case 7:
    39. //            System.out.println("夏季");
    40. //            break;
    41.         case 8:
    42.             System.out.println("夏季");    //输入6,7月时,穿透进入case 8:中
    43.             break;
    44.         case 9:
    45. //            System.out.println("秋季");
    46. //            break;
    47.         case 10:
    48. //            System.out.println("秋季");
    49. //            break;
    50.         case 11:                            
    51.             System.out.println("秋季");    //输入9,10月时,穿透进入case 11:中
    52.             break;
    53.         }
    54.  
    55.     }

    2)case常量值不能相同。

    3)default语句可以在任意位置书写,但一般写在switch结构的末尾。也可以省略不写。

    4、 switch与多重if异同点
    相同点:

    都是用来处理多分支条件的结构

    不同点:

    switch选择结构只能处理等值条件判断的情况

    多重if选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情况
     

  • 相关阅读:
    OCR:C++ PaddleOCR C++ PaddleOCR vs2019 (CPU版)保姆教程
    【QT】续写文本存储到文件
    jQuery 选择器
    SQL Server 创建表
    跳石板(牛客)
    Java集合类--List集合,Set集合,Map集合
    Kotlin基本数据类型
    python基于django的健身资讯网站 vue
    我说ArrayList初始容量是10,面试官让我回去等通知
    手把手带你体验一场属于Linux的学习之旅
  • 原文地址:https://blog.csdn.net/rbh200812/article/details/126650053