Java switch case 语句


Java switch case语句

switch case是Java中一种常用的控制流语句,用于实现多分支选择结构。switch case具有语句块和break语句,可以用于构建复杂的逻辑分支。

switch case语句的语法

switch(expression) {
  case value1:
    // 执行语句块1
    break;
  case value2:
    // 执行语句块2
    break;
  ...
  default:
    // 执行默认语句块
    break;
}
  • switch关键字后面跟着要进行判断的表达式expression
  • case分支表示要判断的值,可以是整数、字符、枚举类型、字符串或其它Java基本数据类型;
  • break语句可以用于结束语句块,跳出switch case语句;
  • default分支表示当表达式的值与所有case分支都不匹配时要执行的操作。

switch case语句的执行流程

switch case语句会按照如下的顺序来执行:

  1. expression的值被计算和比较;
  2. 如果expression的值匹配某个case分支,则执行对应的语句块,然后跳出switch case语句;
  3. 如果没有匹配的case分支,则执行default语句块,然后跳出switch case语句;
  4. 如果没有匹配的case分支,且没有default语句块,则跳过整个switch case语句。

switch case语句的示例

int day = 3;
String dayOfWeek;

switch (day) {
  case 1:
    dayOfWeek = "Monday";
    break;
  case 2:
    dayOfWeek = "Tuesday";
    break;
  case 3:
    dayOfWeek = "Wednesday";
    break;
  case 4:
    dayOfWeek = "Thursday";
    break;
  case 5:
    dayOfWeek = "Friday";
    break;
  case 6:
    dayOfWeek = "Saturday";
    break;
  case 7:
    dayOfWeek = "Sunday";
    break;
  default:
    dayOfWeek = "Invalid day";
}

System.out.println("The day of the week is " + dayOfWeek);

在上面的示例中,根据变量day的值不同,执行对应的case分支语句块,最终输出对应的星期几。如果没有匹配的case分支,则执行default语句块输出"Invalid day"。

switch case语句的特别注意事项

  1. expression只能是整数、字符、枚举类型、字符串或其它Java基本数据类型。不能使用浮点数、布尔类型以及对象类型作为表达式。
  2. case分支必须为常量表达式,即不能是变量或方法返回值;
  3. case分支中的值不能重复;
  4. 所有分支语句块中必须有break语句,否则程序将会继续执行下一个分支,直到遇到break语句或结束switch case语句;
  5. 如果switch case语句中没有break语句,则程序将执行所有满足条件的分支语句块。