switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

switch语句有如下规则:

  • switch语句中的变量类型只能为byte、short、int或者char。
  • switch语句可以拥有多个case语句。每个case后面跟一个要比较的值和冒号。
  • case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  • 当变量的值与case语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出switch语句。
  • 当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case语句不必须要包含break语句。如果没有break语句出现,程序会继续执行下一条case语句,直到出现break语句。
  • switch语句可以包含一个default分支,该分支必须是switch语句的最后一个分支
  • default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。
  • int i=5;
    switch(i){
            default:
                System.out.println("default part");
            case 6:
                System.out.println("first case");
            case 7:
                System.out.println("second case");
    }
    
    System.out.println("----");
    switch(i){
            default:
                System.out.println("default part");
            case 5:
                System.out.println("first case");
            case 7:
                System.out.println("second case");
    }

    测试结果:

  • default part
    first case
    second case
    ----
    first case
    second case

--

从结果可以得之: switch 第一先找寻所有的case, 一旦有等于的 就从这个case一直执行直道看到break 结束。 如果没有符合的case, 走default, 也是一直到break结束。