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     }
  • 相关阅读:
    HDU 5818 Joint Stacks
    HDU 5816 Hearthstone
    HDU 5812 Distance
    HDU 5807 Keep In Touch
    HDU 5798 Stabilization
    HDU 5543 Pick The Sticks
    Light OJ 1393 Crazy Calendar (尼姆博弈)
    NEFU 2016省赛演练一 I题 (模拟题)
    NEFU 2016省赛演练一 F题 (高精度加法)
    NEFU 2016省赛演练一 B题(递推)
  • 原文地址:https://www.cnblogs.com/dupeilin/p/12677338.html
Copyright © 2011-2022 走看看