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), 因此会出错
    
     
     
     
  • 相关阅读:
    Mysql问题1862
    S3TC IAP15F2K61S2点亮一个发光二极管keil和stc-isp软件操作
    .NET练习计算平方根
    求一个整数以内的素数(函数实现)
    判断一个数是不是素数(函数实现)
    #号在进制输出值的作用,美化输出
    分类——决策树模型(附有决策树生成步骤)
    分类:贝叶斯分类之新闻组数据组学习(查看数据类型的方法)(环境:Pycharm)
    分类:K-近邻分类之鸢尾花数据集学习(包含数据预处理中的标准化)(环境:Pycharm)
    编写一个程序,求2~n间的素数,n由键盘输入,循环变量分别 从2到n、2到(int)sqrt(n),分别测出两个循环的所用时间。
  • 原文地址:https://www.cnblogs.com/kexianting/p/8503912.html
Copyright © 2011-2022 走看看