1. switch case语句的概念
switch case语句是一种分支语句,它是根据一个表达式的值,来执行与其对应的代码块。在C语言中,switch case语句用于多个选项的处理,使得代码更加简洁,易于理解。
2. switch case语句的语法
switch(expression){
case const-expression: statements
break;
case const-expression: statements
break;
default: statements
}
expression为需要判断的表达式,case后跟的是一个常量表达式,即需要判断的值。case后面可以跟多个常量表达式,用冒号分隔。default为可选的分支,表示表达式的值与所有case的值都不匹配时执行的代码。
3. switch case语句的执行流程
当程序执行到switch语句时,首先计算出expression的值,接着与每个case后面的常量表达式一一比较,如果匹配上了,就执行后面的语句块,直到遇到break语句或者整个switch结束。如果所有的case都没有匹配上,就执行default语句块里面的代码。
4. switch case语句的应用示例
4.1 示例一:
以下示例是一个根据星期几输出对应的信息的程序:
int day;
printf("请输入星期几(1-7):");
scanf("%d",&day);
switch(day){
case 1: printf("星期一\n");
break;
case 2: printf("星期二\n");
break;
case 3: printf("星期三\n");
break;
case 4: printf("星期四\n");
break;
case 5: printf("星期五\n");
break;
case 6: printf("星期六\n");
break;
case 7: printf("星期日\n");
break;
default: printf("输入错误!\n");
break;
}
以上程序通过switch case语句根据输入的数字输出对应的信息。当输入1-7的数字时,将分别输出对应的星期几,如果输入的数字不在1-7之间,就输出“输入错误!”。
4.2 示例二:
以下示例是一个利用switch case语句来进行加减乘除运算的程序:
double a,b,result;
char operator;
printf("请输入一个表达式(例:1+2):");
scanf("%lf%c%lf",&a,&operator,&b);
switch(operator){
case '+': result=a+b;
break;
case '-': result=a-b;
break;
case '*': result=a*b;
break;
case '/': result=a/b;
break;
default: printf("输入错误!\n");
break;
}
printf("%.2lf %c %.2lf = %.2lf\n",a,operator,b,result);
以上程序先读取输入的表达式,然后根据输入的符号进行加减乘除运算,并输出结果。如果输入的符号不合法,就输出“输入错误!”。
5. switch case语句的注意事项
以下是一些使用switch case语句时需要注意的事项:
每个case语句块都需要以break语句结束,否则程序会继续执行后面的语句,造成逻辑混乱。
case后面的常量表达式必须是一个常量,不能是变量。
switch case语句中表达式的类型只能是整型(int、short、long)或字符型(char)。
总之,在实际编程中要注意使用switch case语句时,保持逻辑清晰,避免冗余代码,确保程序正常运行。