Java:switch语法的使用

郎家岭伯爵 2023年11月19日 197次浏览

前言

不太熟悉 Java 中 switch 语法,总结一下。

实现

语法格式:

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

示例:

@GetMapping("/t9")
public void test9(){
    int i = 1;

    switch (i){
        case 1:
            System.out.println("case 1:" + i);
        case 2:
            System.out.println("case 2:" + i);
            i+=2;
        case 3:
            System.out.println("case 3:" + i);
        case 4:
            System.out.println("case 4:" + i);
            break;
//                return;
        case 5:
            System.out.println("case 5:" + i);
    }
    System.out.println("i 为:" + i);
}

输出:

case 1:1
case 2:1
case 3:3
case 4:3
i 为:3
  • 当变量的值与 case 语句的值相等时,case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句

  • 当遇到 break 语句时,switch 语句终止,程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句

  • switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句

扩展部分

通过以上示例我们可以得出以下结论:

  • 在 switch 语法中,如果匹配到的 case 块中没有 break,那么程序会执行下一个 case 块的代码(即便后续的 case 块没有匹配)。依次类推,直到程序执行完或者遇到 break(或者遇到 return,return 会直接中止掉当前方法进行返回)。

例如我们构建以下示例:

@GetMapping("/t10")
public void test10(){
    int i = 1;

    switch (i){
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            System.out.println("case 5:" + i);
    }
    System.out.println("i 为:" + i);
}

输出:

case 5:1
i 为:1

如以上示例,在第一个 case 块匹配到时,由于 case 块中没有 break,所以程序会依次执行后续的 case 块,直到程序执行结束。

总结

Java 中 switch 语法的使用。

捐赠页面示例