C语言中除了if语句还可以使用Switch语句来实现分支结构。
那么什么是Switch语句呢 ?怎么使用Switch语句?
Switch语句其实是一种特殊的if else结构,适用于判断条件存在多个结果的情况。
它把多重else if改为更清晰 可读性更好的形式。
Switch语句的基本形式如下:
switch(expression)
{
case value1:statement
break:
case value2:statement
break:
case value3:statement
break:
default:statement
}
上面的代码中,根据表达式expression不同的值,执行对应的case分支,如果找不到对应的case分支,则执行default分支。
注意:
- Switch后面的expression必须是整形表达式。
- case后面的value是一个数值 必须为整形常量表达式。
- case 后面要接空格再接常量 并且常量后面不是逗号是冒号。
- 每一个case语句中的代码执行完成之后,需要加上一个break,才能跳出Switch语句。
- statement是声明 可以是printf语句等等。
- default语句是为了弥补case分支没有涉及到的情况时作为其他情况的补充, default语句并不是必不可少,但是有的话会使代码更加完善和严谨 。default和case语句没有顺序要求 通常默认default放在最后。
现在我写一个代码 计算除3之后的余数分别用if语句和Switch语句来实现。
int main()
{
int n = 0;
scanf("%d",&n);
if(n%3 == 0)
pritnf("余数为0\n");
else if(n%3 == 1)
pritnf("余数为1\n");
else if(n%3 == 2)
pritnf("余数为2\n");
return 0;
}
int main()
{
int n = 0;
scanf("%d",&n);
switch(n%3)
{
case 0;printf("余数是0\n");
break;
case 1;printf("余数是1\n");
break;
case 2;printf("余数是2\n");
break;
}
return 0;
}
两种代码对比起来 是不是Switch语句更加清晰 可读性更好
你是否注意到上面Switch语句后面为(n%3) n是字符型,这跟上面说的Switch后面的expression必须是整形表达式相冲突,这里解释一下,字符类型是归类到整形家族里的 字符的本质为ASCII码值 这个值为整数。
下面通过几个例子来了解Switch语句的使用
例题一
输入1-7的数字,打印对应的星期几
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
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;
}
return 0;
}
例题二
星期一到星期五输出工作日 星期六星期天输入休息日
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("今天是工作日\n");
break;
case 6:
case 7:
printf("今天是休息日\n");
break;
}
return 0;
}
你们有没有发现上面这个例子 无论输入的day是12345任意一个 输出的结果都是工作日
碰到这种情况我们就可以删除多余的printf语句和break 使得代码更加清晰简洁
以上就是对Switch语句的简单介绍和注意事项 喜欢的朋友记得点赞评论收藏哦!!!