#switch case用法
在编程中,`switch`和`case`是用于处理多种条件的重要结构,它们通常用于代替一系列嵌套的`if-else`语句,从而使代码更清晰、更易于理解,下面我们将详细介绍`switch`和`case`的用法。
让我们来看一下`switch`语句的基本结构:
```c
switch (expression) {
case constant1:
// 代码块1
break;
case constant2:
// 代码块2
...
default:
// 默认代码块
}
在上面的代码中,`expression`是一个变量或表达式,其值将与每个`case`语句后面的常量进行比较。如果找到一个匹配的`case`,则执行相应的代码块,直到遇到`break`语句为止。如果没有找到匹配的`case`,则执行`default`代码块(可选)。 让我们通过一个简单的例子来演示`switch`和`case`的用法:
java
int day = 3;
String dayString;
switch (day) {
case 1:
dayString = "Monday";
case 2:
dayString = "Tuesday";
case 3:
dayString = "Wednesday";
case 4:
dayString = "Thursday";
case 5:
dayString = "Friday";
case 6:
dayString = "Saturday";
case 7:
dayString = "Sunday";
dayString = "Invalid day";
在上面的例子中,我们使用了一个整数变量`day`来表示一周中的某一天。然后,我们使用`switch`语句根据`day`的值选择相应的字符串赋值给`dayString`变量。如果`day`的值为1,则将"Monday"赋值给`dayString`;如果`day`的值为2,则将"Tuesday"赋值给`dayString`,以此类推。如果没有找到匹配的`case`,则执行`default`代码块,将"Invalid day"赋值给`dayString`。 需要注意的是,在每个`case`代码块的末尾必须使用`break`语句来防止执行下一个`case`代码块。如果不使用`break`语句,程序将继续执行下一个`case`代码块,直到遇到`break`语句或整个`switch`语句结束为止。这种行为称为"case穿透"(fallthrough)。 除了上述的基本用法外,`switch`和`case`还支持一些高级用法。例如,可以使用字符串作为表达式进行比较:
String fruit = "apple";
switch (fruit) {
case "apple":
System.out.println("Selected fruit is apple.");
case "banana":
System.out.println("Selected fruit is banana.");
case "orange":
System.out.println("Selected fruit is orange.");
System.out.println("Selected fruit is not in the list.");
```
在这个例子中,我们将字符串变量`fruit`作为表达式传递给`switch`语句,我们使用字符串常量来比较`fruit`的值,如果匹配的字符串常量被找到,则执行相应的代码块,如果没有找到匹配的字符串常量,则执行默认代码块。