switch case用法

admin 51 0

#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`的值,如果匹配的字符串常量被找到,则执行相应的代码块,如果没有找到匹配的字符串常量,则执行默认代码块。