首先,用常规的【if】【else】语句来实现这个功能:
代码:
int a;
puts("输入一个整数");
scanf_s("%d",&a);
if (a % 3 == 0)
printf("该数能被3整除");
if (a % 3 == 1)
printf("该数被3除后余数为1");
if (a % 3 == 2)
printf("该数被3除后余数为2");
这个代码是可以运行,并且输出我们想要的结果的。但是这段代码存在冗余,例如:如果键盘输入5,则这个余数为2,执行第一个a%3不够,执行第二个a%3还不够,到第三个a%3才得出结论,余数为2。一句a%3被重复执行了3次。程序冗余可能会导致错误。
面对这种情况,我们引入【switch】【break】语句就很有意义了。程序如下:
代码:
int a;
puts("输入一个整数");
scanf_s("%d",&a);
switch (a % 3)
{
case 0:printf("该数能被3整除");
break;
case 1: printf("该数被3除后余数为1");
break;
case 2: printf("该数被3除后余数为2");
break;
}
运行结果:
1)能被整除:
2)余数为1:
3)余数为2:
在上述程序中,a%3语句值执行了一次。避免了冗余。
注意事项:
1):switch语句主要用于:多分枝结构。
2):case代表了标签,case 1并不是case1,二者意义不同,注意区分:前者1代表了case的值,后者1代表了case的编号。
3):case后必须要打“空格”,然后再写case的值。
4):每个case结束后,都要有break,代表着一旦这个case满足判断,那么就直接跳过其他case,本例中跳过其他case就是主程序的出口。
5):一个switch控制的cases必须要用大括号括起来。