什么是switch case语句?
在C语言中,switch case语句是一种多分支选择语句,用于选择特定的操作,可以代替一些多重嵌套的if else语句,使代码更加简洁易懂。switch case语句的常用形式如下:
switch(expression)
{
case constant1:
statement1;
break;
case constant2:
statement2;
break;
default:
statementN;
break;
}
其中expression为需要进行选择的表达式,constant1、constant2等为可能的取值,statement1、statement2等为可能的执行语句,default为选择无法匹配常量时执行的语句。
如何使用switch case语句?
表达式的选择
在使用switch case语句时,需要选择一个表达式作为判断依据。可以是字符、整型、枚举类型等,但必须具有离散的值。以下是一个简单的例子:
#include <stdio.h>
int main()
{
int num;
printf("请输入数字:\n");
scanf("%d",&num);
switch(num)
{
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;
}
return 0;
}
上述代码中,用户输入一个数字,根据输入的数字输出对应的星期几。当用户输入错误的数字时,输出“输入错误!”。
常量的匹配
switch case语句中的常量必须是字面常量或枚举常量,变量是不允许的。另外,每个常量后都要有一个冒号作为分隔符。每个常量后的语句块称为语句组,一个常量可以对应多个语句。以下是一个例子:
#include <stdio.h>
int main()
{
char grade;
printf("请输入您的成绩:\n");
scanf("%c",&grade);
switch(grade)
{
case 'A':
printf("优秀\n");
break;
case 'B':
printf("良好\n");
break;
case 'C':
printf("及格\n");
break;
case 'D':
case 'E':
printf("不及格\n");
break;
default:
printf("成绩错误!\n");
break;
}
return 0;
}
上述代码中,用户输入一个字母成绩,根据输入的成绩输出对应的等级。当用户输入的字母成绩无法匹配时,输出“成绩错误!”。
default子句
switch case语句中的default子句是可选的,当所有常量都与表达式不匹配时,会执行default子句中的语句块。以下是一个例子:
#include <stdio.h>
int main()
{
int num;
printf("请输入数字:\n");
scanf("%d",&num);
switch(num)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
default:
printf("输入错误!\n");
break;
}
return 0;
}
上述代码中,用户输入一个数字,根据输入的数字输出对应的星期几。当用户输入的数字不是1、2、3时,输出“输入错误!”。
总结
以上就是switch case语句的基本用法,利用switch case语句可以使代码更加简洁易懂,提高程序的可读性。需要注意的是,在使用switch case语句时,表达式必须具有离散的值,常量必须是字面常量或枚举常量,变量是不允许的;default子句是可选的,如果所有常量都与表达式不匹配,则执行default子句中的语句块。