zoukankan      html  css  js  c++  java
  • java中的switch

    switch 语句由一个控制表达式和多个case标签组成。

    switch 控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。

    switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高

    default在当前switch找不到匹配的case时执行。default并不是必须的。

    一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。

    使用实例:

    1).int类型switch示例

    int i = 3;

    switch (i) {
    case 1:
        System.out.println(1);
        break;
    case 2:
        System.out.println(2);
        break;
    case 3:
        System.out.println(3);
        break;
    default:
        System.out.println(0);
    }
    2).枚举(Enum)类型switch示例
    public class TestSwitch {
     
        static enum E {
            A, B, C, D
        }
     
        public static void main(String args[]) {
            E e = E.B;
            switch (e) {
            case A:
                System.out.println("A");
                break;
            case B:
                System.out.println("B");
                break;
            case C:
                System.out.println("C");
                break;
            case D:
                System.out.println("D");
                break;
            default:
                System.out.println(0);
            }
        }
    3).String类型switch示例

    String str = "C";

    switch (str) {
    case "A":
        System.out.println("A");
        break;
    case "B":
        System.out.println("B");
        break;
    case "C":
        System.out.println("C");
        break;
    default:
        System.out.println(0);
    }
    4).break的陷阱:break在switch中用于结束当前流程。一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
    int i = 2;
    switch (i) {
    case 1:
        System.out.println(1);
    case 2:
        System.out.println(2);
    case 3:
        System.out.println(3);
    default:
        System.out.println(0);
    }
    输出结果:
    2
    3
    0
    5).default: default在当前switch找不到匹配的case时执行。default并不是必须的。
    int x = 0;
    switch (x) {
    case 1:
        System.out.println(1);
    case 2:
        System.out.println(2);
    default:
        System.out.println("default");
    }
     
    注意事项
    1).switch(A),括号中A的取值只能是整型或者可以转换为整型的数值类型,比如byte、short、int、char、还有枚举;需要强调的是:java7之前long和String类型是不能作用在switch语句上的, java7之后String可以使用.
    2).case B:C;case是常量表达式,也就是说B的取值只能是常量或者int、byte、short、char(比如1、2、3、200000000000(注意了这是整型)),如果你需要在此处写一个表达式或者变量,那么就要加上单引号; case后的语句可以不用大括号,就是C不需要用大括号包裹着;

    3).case后面必须要跟常量, 且不能为long或float类型:

    private int CLICK_QUERY = 1;
    
    switch (tag)
    
     {
    
      case CLICK_QUERY://错误,CLICK_QUERY不是常量, 用final修饰, 必须是final类型常量,不能是final的变量, 例如:final int CLICK_QUERY = 1; 但不能是final int CLICK_QUERY ;
    query(); break;

    4).case后面的数值的范围:

    byte a = 11;
    
      switch(a){// C
    
      case 11 : System.out.println(" 11 "); break;
    
      case 225 : System.out.println(" 11 "); break;// 225超过了byte的范围(byte的范围是-127~128), 因此会出错
    
     
     
     
  • 相关阅读:
    HTML基础
    一次由任意文件漏洞开始的渗透测试过程
    谈一谈信息泄露这件事
    浅谈任意文件下载漏洞的利用
    [原创] 一次渗透测试过程--从外网进内网
    一次绕过360+诺顿的提权过程
    漏洞挖掘高级方法
    新型勒索软件Magniber正瞄准韩国、亚太地区开展攻击
    Microsoft Edge 浏览器远程代码执行漏洞POC及细节(CVE-2017-8641)
    Office远程代码执行漏洞CVE-2017-0199复现
  • 原文地址:https://www.cnblogs.com/kexianting/p/8503912.html
Copyright © 2011-2022 走看看