4.6 使用switch
语句实现多分支选择结构
switch
语句在C语言中用于基于不同的情况执行不同的代码块,它是一种多分支选择结构,允许程序根据变量的值选择执行不同的代码路径。
基本格式
switch
语句的基本格式如下:
switch (expression) {
case constant1:
// 当expression等于constant1时执行的代码
break;
case constant2:
// 当expression等于constant2时执行的代码
break;
// ...
default:
// 当expression不等于任何case时执行的代码
}
expression
:是要评估的表达式,通常是一个变量或常量。case
:后面跟着一个常量表达式,如果expression
的值与该常量相等,那么紧跟在case
标签后面的代码块将被执行。break
:用于终止switch
语句,防止执行流继续流向下一个case
。default
:可选的,如果expression
的值不匹配任何case
,那么default
块中的代码将被执行。
流程图
下面是一个流程图,展示了switch
语句的逻辑:
代码文本描述
下面是一个使用switch
语句的示例代码,该程序根据用户输入的字符来判断星期几:
#include <stdio.h>
int main() {
char day;
printf("请输入星期几的首字母(S-星期天,M-星期一,...,S-星期六):");
scanf(" %c", &day); // 注意前面的空格,用于忽略任何空白字符
switch (day) {
case 'S':
printf("星期天\n");
break;
case 'M':
printf("星期一\n");
break;
case 'T':
printf("星期二\n");
break;
case 'W':
printf("星期三\n");
break;
case 'H':
printf("星期四\n");
break;
case 'F':
printf("星期五\n");
break;
case 'A':
printf("星期六\n");
break;
default:
printf("无效输入\n");
}
return 0;
}
在这个例子中,程序首先提示用户输入表示星期几的首字母。然后,switch
语句根据输入的字符选择相应的case
块来执行。如果输入的字符与case
中的常量不匹配,并且没有default
块,则switch
语句结束,不执行任何操作。如果存在default
块,并且输入的字符不匹配任何case
,则执行default
块中的代码。
这种使用switch
语句的方式在程序中非常常见,用于实现基于不同情况的多分支选择结构。