zoukankan      html  css  js  c++  java
  • switch语句 case穿透

    switch语句的case穿透

        public static void main(String[] args) {
            int week = 2;
            /*如果不写break  case 会 一层一层穿透, 下面这个代码
                2 不等于case 1  但是没有break 会输出 "星期一";
                同时 2等于case 2  也会输出case 2 ;
                终端输出  星期一  星期二
            *
            */
            switch (week) {
                case 1:
                    System.out.println("星期一");
                case 2:
                    System.out.println("星期二");
                case 3:
                    System.out.println("星期三");
                default:
                    System.out.println("您的星期数不是1-2, 请检查");
                    break;
            }
        }

    switch   case 穿透  default 在最上面的值

     1 public static void main (String[] args){
     2         int x=4;
     3         int y=0;
     4         /*
     5         * x=4  首先跳过 default 
     6         * case 2 匹配不上  case 3 匹配不上  再去寻找 default 
     7         * 找到default  y++  然后在走一遍  case2   case3  的 y++
     8         * 最后 y = 3 ;
     9         * 本来是case最后看见{}要结束的,但是结束是case 的值需要和 switch的值 对上 否则就需要寻找 default
    10         * */
    11         switch(x) {
    12             default:
    13                 y++;
    14             case 2:
    15                 y++;
    16             case 3:
    17                 y++;
    18             
    19         }
    20         System.out.println(y);

    switch   case 穿透  default 在最下面的值

     1 public static void main (String[] args){
     2         int x=4;
     3         int y=0;
     4         /*
     5         * x=4  首先跳过 default
     6         * case 2 匹配不上  case 3 匹配不上  再去寻找 default
     7         * 找到default  y++  
     8         * 最后 y = 1 ;
     9         *
    10         * */
    11         switch(x) {
    12 
    13             case 2:
    14                 y++;
    15             case 3:
    16                 y++;
    17             default:
    18                 y++;
    19         }
    20         System.out.println(y);

    switch   case 穿透  没有 defaul y的值是0

    什么时候用case穿透? 当case的语句是重复的时候可以听case穿透 例如

     1  public static void main(String[] args) {
     2         int week = 2;
     3         /*
     4         case穿透例子
     5         *
     6         */
     7         switch (week) {
     8             case 1:
     9                 System.out.println("星期一");
    10                 break;
    11             case 2:
    12                 System.out.println("星期一");
    13                 break;
    14             case 3:
    15                 System.out.println("星期三");
    16                 break;
    17             default:
    18                 System.out.println("您的星期数不是1-2, 请检查");
    19                 break;
    20         }
    21     }

    可以简写

     1     public static void main(String[] args) {
     2         int week = 2;
     3         /*
     4         case穿透例子
     5         *
     6         */
     7         switch (week) {
     8             case 1:
     9             case 2:
    10                 System.out.println("星期一");
    11                 break;
    12             case 3:
    13                 System.out.println("星期三");
    14                 break;
    15             default:
    16                 System.out.println("您的星期数不是1-2, 请检查");
    17                 break;
    18         }
    19     }
  • 相关阅读:
    js五种继承优缺点
    golang---panic/recover
    golang---应用OOM
    golang--- context
    常用工具及日常
    golang --- pipline
    golang 竞争---翻译
    深入golang之---goroutine并发控制与通信
    rpm打包
    k8s-operator指北
  • 原文地址:https://www.cnblogs.com/dupeilin/p/12677338.html
Copyright © 2011-2022 走看看