1、switch语句
* 基本语法格式
为了更好的理解switch语句,我们将和if语句进行对比:
举例:输入任意一个整数值,计算除3之后的余数。
首先,我们用if语句来实现代码:
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
if (n % 3 == 0)
printf("整除,余数是0");
else if (n % 3 == 1)
printf("余数是1");
else
printf("余数是2");
return 0;
}
接下来,我们就使用switch语句来实现代码:
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch (n % 3)
{
case 0:printf("整除,余数是0");
case 1:printf("余数是1");
case 2:printf("余数是2");
}
return 0;
}
在这里,大家有没有发现一个问题,同样是输入6,5,4,这个代码输出的结果却和上面if语句的结果不一样,这是为什么呢?
接下来,下面的代码是正确的:
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch (n % 3)
{
case 0:printf("整除,余数是0"); break;
case 1:printf("余数是1"); break;
case 2:printf("余数是2"); break;
}
return 0;
}
这个代码输入6,5,4输出结果和上面if语句的输出结果就一致了。
这两个代码有什么不一样呢?这个就要看看咱们的基本语法格式了,我们再看一遍:
很明显,后面有个break,在我们初学C语言的时候,最容易丢掉后面的这个break,所以,要时刻注意,咱们的break是不能丢掉的。
接下来,我们还是用对比的方法来学习一下switch语句的作用:
我们用if 语句和switch语句来实现百分制成绩转换为五分制成绩
#include<stdio.h>
int main()
{
int i = 0;
scanf("%d", &i);
if (i >= 90)
printf("A\n");
else if (i < 90 && i >= 80)
printf("B\n");
else if (i < 80 && i >= 70)
printf("C\n");
else if (i < 70 && i >= 60)
printf("D\n");
else if (i < 60)
printf("E\n");
return 0;
}
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
switch (n / 10)
{
case 9:printf("A"); break;
case 8:printf("B"); break;
case 7:printf("C"); break;
case 6:printf("D"); break;
default:printf("E");
}
return 0;
}
以上两个代码,虽然使用的语句不同,但是代码效果是相同的,而我们在平时做练习的时候,可以将这两种代码进行转换来巩固自己的知识。