Java switch详解

159 阅读2分钟

switch是Java中的一种条件语句,用于根据不同的条件执行不同的代码块。switch语句可以代替多个if-else if语句,使代码更加简洁易读。它的基本语法如下:

switch (expression) {
    case value1:
        // 如果 expression 的值等于 value1,执行该代码块
        break;
    case value2:
        // 如果 expression 的值等于 value2,执行该代码块
        break;
    ...
    default:
        // 如果 expression 的值都不等于前面的任何值,执行该代码块
}

其中,expression是一个表达式,其值将会与每个case子句的值进行比较。case子句指定了可能与expression的值匹配的值,如果匹配,则执行相应的代码块。break语句用于终止每个case子句并退出switch语句。default子句在expression的值与其他case子句的值都不匹配时执行。

下面是一个简单的 switch 语句示例:

int dayOfWeek = 2;
String dayName;

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

System.out.println("Today is " + dayName);

在上面的示例中,我们声明了一个名为 dayOfWeek 的变量,并将其设置为 2,即星期一。然后,我们使用 switch 语句检查 dayOfWeek 的值,并将相应的字符串赋给 dayName 变量。如果 dayOfWeek 的值不在 1-7 范围内,则会执行 default 分支并将 dayName 设置为 "Invalid day"。

除了整数之外,您还可以使用字符串、字符和枚举类型的值作为 switch 语句的条件。

以下是一个使用字符串的示例:

String fruit = "apple";
double price;

switch (fruit) {
    case "banana":
        price = 0.99;
        break;
    case "apple":
        price = 1.49;
        break;
    case "orange":
        price = 0.79;
        break;
    default:
        price = 0.00;
        break;
}

System.out.println("The price of " + fruit + " is $" + price);

在这个示例中,我们声明了一个名为 fruit 的字符串变量。然后,我们使用 switch 语句根据 fruit 的值设置相应的价格,并将结果打印到控制台上。

需要注意的是,case子句中的值必须是常量表达式或字面量,并且不能重复。同时,在Java 7及以上版本中,在switch语句中也可以使用字符串。此外,switch语句还支持嵌套和fall-through特性(即在一个case子句中省略break语句,从而执行后面的case子句)。

Java 中的 switch 语句可以根据不同的条件执行不同的代码块。switch 语句适用于多个固定值的情况,例如枚举或常量,而 if/else 语句则适用于更复杂的条件。

总体来说,switch 语句是一种非常有用的控制结构,可以使代码更加清晰和易于理解。