Java switch语句

switch语句用于测试变量与值列表的相等性。 每个值称为一个case,并且针对每种情况检查对应的变量值。

语法
增强for循环的语法是 -

switch(expression) {
   case value :
      // 执行语句块
      break; // 可选

   case value :
      // 执行语句块
      break; // 可选

   // 可以拥有任意数量的 case 语句。
   default : // 可选
      // 执行语句块
}

以下是适用于switch语句的规则 -

  • switch语句中使用的变量只能是整数,可转换为整数(如:byteshortchar),字符串和枚举类型。
  • 可以在switch中包含任意数量的case语句。每个case后跟要与之比较的值和冒号。
  • case的值必须与switch中的变量具有相同的数据类型,并且必须是常量或文字。
  • switch的变量等于case中的值时,该case之后的语句将一直执行,直到达到break语句。
  • 当达到break语句时switch终止,控制流跳转到switch语句块后面的下一行代码。
  • 不是每个case都需要包含break语句。 如果没有指定break语句,则控制流将落到后续case中,直到达到break语句。
  • switch语句可以有一个可选的default,它必须出现在switch语句的末尾。 当没有任何case匹配时,执行default中的代码块。default中不需要break语句。

Switch语句流程图

示例1


public class SwitchExample {
    public static void main(String[] args) {
        // 为switch表达式声明一个变量
        int number = 20;
        // Switch表达式
        switch (number) {
        // Case语句
        case 10:
            System.out.println("10");
            break;
        case 20:
            System.out.println("20");
            break;
        case 30:
            System.out.println("30");
            break;
        // Default case statement
        default:
            System.out.println("Not in 10, 20 or 30");
        }
    }
}

执行上面示例代码,得到以下结果:

20

示例2


public class SwitchExample {
    public static void main(String args[]) {
        // char grade = args[0].charAt(0);
        char grade = 'B';

        switch (grade) {
        case 'A':
            System.out.println("相当优秀!");
            break;
        case 'B':
        case 'C':
            System.out.println("一般优秀");
            break;
        case 'D':
            System.out.println("还不错");
        case 'F':
            System.out.println("好像不太行");
            break;
        default:
            System.out.println("无效级别");
        }
        System.out.println("您的级别是:" + grade);
    }
}

执行上面示例代码,得到以下结果:

一般优秀
您的级别是:B

上一篇: java中方法重载和方法重写的区别 下一篇:无