39.switch语句
目录
一.什么是switch语句
在进行多分支选择判断时,除了可以使用之前讲解的if语句实现多分支结构,也可以使用switch语句,所以switch语句是多分支选择语句。从功能上来说,switch语句和if语句可以互相取代,但是他们又各有特点。
二.if语句和switch语句要如何选择呢?
当嵌套的 if 比较少时(三个以内),用 if 编写程序会比较简洁。但是当选择的分支比较多时,嵌套的 if 语句层数就会很多,导致可读性下降。这时候可以使用switch 语句来处理多分支选择。也就是分支少时,if语句比较方便,分支多时,使用switch语句更好。
三.switch语句语法
switch (表达式)
{
case 常量表达式1: 语句1
case 常量表达式2: 语句2
┇
case 常量表达式n: 语句n
default: 语句n+1
}
注意事项:
说明:
1) switch 后面括号内的“表达式”必须是整数类型。也就是说可以是 int 型变量、char 型变量,也可以直接是整数或字符常量,哪怕是负数都可以。但绝对不可以是实数,float 型变量、double 型变量、小数通通不行,否则全部都是语法错误。
2) switch 下的 case 和 default 必须用一对大括号{}
括起来。case后的语句可以有多个且不用花括号括起来。
3) 当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。执行完一个case后面的语句后,如果没有用break语句跳出switch语句就会转移到下一个case继续执行。如果只想执行这一个case语句,不想执行其他case,那么就需要在这个case语句后面加上break,跳出switch语句。
注意:
“case:常量表达式”只是起“书签”的作用,并不做判断。在执行 switch 语句时,根据 switch 后面表达式的值找到匹配的“书签”,然后从此“书签”开始执行下去。
4) 若所有的 case 中的常量表达式的值都没有与 switch 后面括号内“表达式”的值相等的,就执行 default 后面的语句,一般把 default 写在最后,因为?default 是最后一条语句的话,执行完后自然就退出 switch 了。
当然也可以不要 default 语句,就跟 if…else 最后不要 else 语句一样。但最好是加上,后面可以什么都不写。这样可以避免别人误以为你忘了进行 default 处理,而且可以提醒别人 switch 到此结束了。
还有就是,可以只写default, default后面可以不写语句,但是后面的冒号不能省略,否则会发生语法错误。
5) case后的常量表达式不能相同,否则就会出现互相矛盾的现象,也会造成语法错误。
6) case和default子句的先后顺序可以先后变动,但从阅读的角度最好是按字母或数字的顺序写。
四.举例
#include <stdio.h>
void main(void)
{
int a;
int b;
printf("Please input a value:\n");
scanf("%d",&a);
switch (a)
{
case 1 :
printf("value is %d\n",a);
case 2 :
printf("value is %d\n",a);
case 3 :
printf("value is %d\n",a);
default:
printf("error\n");
}
}
五.视频教程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!