zoukankan      html  css  js  c++  java
  • java之switch语句

    /**
    * 关于switch语句:
    * 1、switch语句也属于选择结构,也是分支结构
    * 2、switch语句的语法结构:
    * switch(int或者String类型的字面值或者变量){
    * case int或String类型的字面值或变量:
    * java语句;
    * java语句;
    * java语句;
    * ...
    * break;
    * case int或String类型的字面值或变量:
    * java语句;
    * java语句;
    * java语句;
    * ...
    * break;
    * case int或String类型的字面值或变量:
    * java语句;
    * java语句;
    * java语句;
    * ...
    * break;
    * case int或String类型的字面值或变量:
    * java语句;
    * java语句;
    * java语句;
    * ...
    * break;
    * default :
    * java语句;
    * ...
    * }
    * 3、switch语句的执行原理:
    * switch后面小括号众的"数据"和case后面的"数据"进行一一匹配,匹配成功的分支之行。
    * 按照自上而下的顺序依次匹配
    * 4、匹配成功的分支执行,分支当中最后有break;语句的话,整个switch语句终止
    * 5、匹配成功的分支执行,分支当中没有break;语句的话,直接进入下一个分支执行(不进行匹配)
    * 这种现象被称为case穿透现象。【提供break;语句,可以避免穿透】
    * 6、所有分支都没有匹配成功,当有default的语句,会执行default分支当中的程序
    * 7、switch和case后面只能是int或String类型的数据,不能是探测其他类型。
    * byte,short,char可以自动转换为int类型
    * JDK6,switch和case后面只能探测int
    * JDK7之后包括7版本在哪,switch和case后面可以探测int或String类型的数据
    * 8、case可以合并
    * int i=10;
    * switch(i){
    * case 1: case 2: case 3: case 10:
    * System.out.println("Test code");
    * case 4: case 5:
    * System.out.println("Test coding");
    * case 6:
    * System.out.println("coding");
    *
    * }*/
     1 public class SwitchTest {
     2     public static void main(String args[]){
     3         /*
     4         long a = 10L;
     5         int b = a; //编译报错,不可以自动转换,
     6          */
     7         
     8         /*
     9         long x = 100L;
    10         switch(x){}   //编译报错,损失精度
    11         */
    12         
    13         //解决编译错误
    14         long x = 100L;
    15         switch ((int)x){ }
    16         
    17         byte b = 10;
    18         switch (b){ }
    19 
    20         short s = 10;
    21         switch (s){ }
    22         
    23         char c = 'A';
    24         switch (c){ }
    25         
    26         switch ("zhangshan"){}
    27         
    28         //switch (true){}   //编译报错
    29     }
    30 }

    写一个完整的code:

     1 import java.util.Scanner;
     2 public class SwitchTest {
     3     public static void main(String args[]){
     4         /*
     5         接收用户的输入:0-6分别代表星期日,星期一...星期六*/
     6         Scanner s = new Scanner(System.in);
     7         System.out.println("请输入数字:");
     8         int num = s.nextInt();
     9         switch (num){
    10             case 1:
    11                 System.out.println("星期一");
    12                 break;
    13             case 2:
    14                 System.out.println("星期二");
    15                 break;
    16             case 3:
    17                 System.out.println("星期三");
    18                 break;
    19             case 4:
    20                 System.out.println("星期四");
    21                 break;
    22             case 5:
    23                 System.out.println("星期五");
    24                 break;
    25             case 6:
    26                 System.out.println("星期六");
    27                 break;
    28             case 0:
    29                 System.out.println("星期日");
    30                 break;
    31             default:
    32                 System.out.println("不合法的数字");
    33         }
    34 
    35         //数字穿透
    36         System.out.println("请输入数字:");
    37         int num1 = s.nextInt();
    38         switch (num1){
    39             case 1:
    40                 System.out.println("星期一");
    41             case 2:
    42                 System.out.println("星期二");
    43             case 3:
    44                 System.out.println("星期三");
    45                 break;
    46             case 4:
    47                 System.out.println("星期四");
    48                 break;
    49             case 5:
    50                 System.out.println("星期五");
    51                 break;
    52             case 6:
    53                 System.out.println("星期六");
    54                 break;
    55             case 0:
    56                 System.out.println("星期日");
    57                 break;
    58             default:
    59                 System.out.println("不合法的数字");
    60         }
    61     }
    62 }

    结果: 第二次穿透,输入了一个1,然后打印出了星期一星期二,星期三,因为匹配了1,没有break,所以直接进入2,没有break,直接进入3,3有break,
    所以退出,2和3并没有进行匹配,而是穿透的效果。
  • 相关阅读:
    jq 的简单循环
    简单的下拉菜单
    jQ事件
    图片移动
    选中效果
    js 时间
    简单的密码验证
    DOM 的简介 和一些方法
    Java编程思想笔记
    Java并发笔记(二)
  • 原文地址:https://www.cnblogs.com/peiminer/p/14231349.html
Copyright © 2011-2022 走看看