1. 为实现分支结构,除了 if 语句外,C语言还提供了 switch语句来实现分支结构,switch语句和if....else语句的作用几乎相同,但当判断条件有多个结果时,switch语句则更加简便,读取性更强。其使用形式为...
switch (expression)
{
case value1: statement
case value2: statement
case value3: statement
default:statement
}
根据计算expression得出的结果执行与之相对应的分支,当无对应结果时则执行default分支。但是switch后面的expression必须是整形表达式,case后面的value也必须是整形常量表达式。一般的,switch中的case和default的顺序没有强制要求,只是习惯于把default放在最后。
2. if语句和switch语句的对比
如果想计算任意一个整数除以4后的余数,我们可以用这两个不同的语句来实现。
若使用if语句则是...
#include<stdio.h>
int main()
{
int num = 0;printf("请输入一个整数\n");
scanf("%d", &num);
if (num%4 == 0)
printf("整除,余数等于零\n");
else if(num%4 == 1)
printf("余数是1\n");
else if(num%4 == 2)
printf("余数是2\n");
else
printf("余数是3\n");
return 0;
}
若使用switch语句则是...
#include<stdio.h>
int main()
{
int num=0;
printf("请输入一个整数\n");
scanf("%d", &num);
switch(num%4)
{
case 0:
printf("整除,余数为零");
break;
case 1:
printf("余数为1");
break;
case 2:
printf("余数为2");
break;
case 3:
printf("余数为3");
break;
}
return 0;
}
注:case和后面的value之间必须有空格,每一个case语句执行完后都要执行break语句才能跳出这个switch。
3. switch语句中的break
当执行完case语句后,只有执行break才能跳出switch,没有break的话,当前case语句执行完后代码会继续执行下面的case语句,从而引发错乱。但是break在特殊时候也可以省略,例如下面的例子.....
若要求输入1—5为工作日,输入6,7为休息日,则可以这样写
#include<stdio.h>
int main()
{
int day=0;
printf("请输入一个1—7之间的整数");
scanf("%d",&day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
default:
printf("输入错误,请输入1—7内的整数");
break;
}
return 0;
}