`switch`语句是一种多路分支选择结构,它根据一个表达式的值来选择执行不同的代码块。`switch`语句的基本语法如下:
```c
switch (expression) {
case constant1:
// 代码块1
break;
case constant2:
// 代码块2
break;
// 可以有任意数量的case语句
default:
// 默认代码块
}
```
其中,`expression`是一个表达式,它的值将被与每个`case`子句中的常量进行比较。如果找到匹配的常量,程序将执行相应的代码块。`break`语句用于终止`switch`语句的执行,防止“贯穿”到下一个`case`子句。`default`子句是可选的,当`expression`的值与所有`case`子句都不匹配时,将执行`default`子句中的代码。
使用`switch`语句时,需要注意以下几点:
1. `expression`的值必须是整型或枚举类型,`case`后的常量也必须是整型或枚举类型常量。
2. 每个`case`分支语句结束时必须加上`break`语句,以确保只执行对应的代码块而不会继续向下执行其他`case`。
3. 如果省略`break`语句,程序将会继续执行后续`case`的代码块,直到遇到`break`或者整个`switch`语句结束。
4. `default`子句是可选的,用于处理所有`case`都不匹配的情况。
下面是一个使用`switch`语句的示例:
```c
include
int main() {
int day = 3;
switch (day) {
case 1:
printf("Monday
");
break;
case 2:
printf("Tuesday
");
break;
case 3:
printf("Wednesday
");
break;
case 4:
printf("Thursday
");
break;
case 5:
printf("Friday
");
break;
case 6:
printf("Saturday
");
break;
case 7:
printf("Sunday
");
break;
default:
printf("Invalid day
");
}
return 0;
}
```
在这个示例中,根据`day`变量的值,程序将打印出对应的星期名称。如果`day`的值不是1到7之间的整数,将执行`default`子句中的代码,打印出"Invalid day"。