C语言中的switch case
在C语言中,switch case
语句是一种用于多分支选择的结构,可以替代多个if else
语句。switch case
语句根据表达式的值来判断执行哪个分支,是一种更加简洁、清晰的流程控制语句。本文将详细介绍switch case
语句的用法、语法以及一些注意事项。
语法
switch case
语句的基本语法如下所示:
switch (表达式) {
case 值1:
// 若表达式的值等于值1,则执行这里的代码
break;
case 值2:
// 若表达式的值等于值2,则执行这里的代码
break;
// 可以有多个case
default:
// 如果表达式的值和所有的case都不匹配,则执行default中的代码
}
switch
后面的括号中是一个表达式,该表达式的值将会被用来匹配不同的case
分支。case
后面是要匹配的值,如果表达式的值等于case
后面指定的值,那么就会执行该分支下面的代码。- 每个
case
分支都要以break;
结束,表示跳出switch
语句,否则会接着执行下一个分支的代码。 - 如果表达式的值与所有的
case
都不匹配,则执行default
中的代码,default
是可选的。
示例
下面通过一个简单的示例来演示switch case
语句的使用:
#include <stdio.h>
int main() {
int num = 3;
switch(num) {
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
default:
printf("其他\n");
}
return 0;
}
在这个示例中,num
的值是3,根据switch case
语句的匹配规则,程序会执行case 3
中的代码,输出”星期三”。运行上面的代码,得到的输出为:
星期三
注意事项
在使用switch case
语句时,需要注意以下几点:
switch
后面的表达式只能是整型或字符型,不能是浮点型、数组等其他类型。- 每个
case
分支中的值必须是常量,不能是变量或者表达式。 - 每个
case
分支中不能定义变量,只能是执行语句。 - 每个
case
分支末尾要加上break;
,否则会出现”case穿透”现象,即匹配到一个case
分支后,会继续执行下面所有分支的代码,直到遇到break;
为止。 default
分支是可选的,如果没有匹配的case
,会执行default
中的代码。
总结
switch case
语句是C语言中一种方便、简洁的多分支选择结构,适合用于根据不同的条件执行不同的代码。在实际编程中,根据情况选用switch case
或者if else
结构可以使代码更加清晰易读。