C语言中if和switch有什么区别?

 我来答
仙戈雅3n
推荐于2017-09-03 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:877万
展开全部

if和switch的主要区别如下:


1)if的括号内的表达式可以分别是布尔类型的合法表达式、可以是所有大于0的正整数为true,反之为小于等于0的正整数为false、可以是常量、枚举;而switch括号内也符合前面if提到的外,就是当圆括号内为正整数只能是0或1,其它的正整数属于 default范围。这点可以看如下代码:

switch (2)  // 除了0和1的其它正整数
{
case false:  // 对应0
printf("false\n");
break;
case true:  // 对应1
printf("true\n");
break;
default: // 对应非0和1以外的正整数
printf("其它\n");
break;
}

2)尽管if括号内也支持常量、枚举但也是有前提的那就是常量或枚举必须要显式给出相应的数值。而switch则不必;

3)switch适合处理判断分支较多的情况下(代码可读性好),而if适合处理判断分支较少的情况下(反之代码可读性差,容易出现漏判或重复判断)。

洛雨曦1125
2012-05-12 · TA获得超过1345个赞
知道小有建树答主
回答量:295
采纳率:100%
帮助的人:94.4万
展开全部
switch( 表达式)//这个地方不能加分号,表达式必须是字符型或整型
{ case E1 : 语句组 1; //case 与E1(即常量)之间用空格分隔
case E2 : 语句组 2;// case后的常量不能相同且常量后必须加冒号
…….
case En : 语句组 n;
[default: 语句组 ;]
}
执行过程:
一、计算
二、找case
三、从找到的case开始,往下全部执行
四、若没找到case,则从default开始往下全部执行,
若没default则结束switch语句。

if是选择结构,有三个形式,它们执行是条件成立只会选一个执行。
第一个:if (表达式)
语句;
第二个:if (表达式)
语句1;
else
语句2;

第三个:
if ( 表达式1 )
语句1;
else if (表达式2 )
语句2;
else if (表达式3 )
语句3;
…...
[ else
语句; ]
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百an居
2012-05-12 · TA获得超过333个赞
知道答主
回答量:247
采纳率:100%
帮助的人:180万
展开全部
if 直接是选择的意思
如果(),执行()
否则,()
永远是否则后面没有条件,而且if 和 else 成对出现
switch 可以是多项选择且直接跳转
switch a : A
b : B
c : C
等等
这两个差很多~
你可以再仔细看看书
能用到SWITCH 语句的话,用IF 就很繁琐
但是简单的选择用IF 比较好了

希望能帮到你哦,请您采纳,刚刚玩,在做任务
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a1012144015
2015-05-16 · TA获得超过6415个赞
知道大有可为答主
回答量:9038
采纳率:40%
帮助的人:1325万
展开全部
看情况。
if判断条件,处理逻辑表达式。
switch 通常处理算术表达式,或字符,当它等于什么什么,转向做什么。switch相当开关

如果“比较整数”,i1 是否大于 i2, 当然用if
如果决定转向,例如 i=1 画直线,i=2 画曲线,i=3 画圆,i=4 画虚线直线, i=5 画虚线曲线, i=6 画长方形 i=其他值 返回重选
这当然用switch,switch 执行快。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
865016640
2012-05-12
知道答主
回答量:37
采纳率:0%
帮助的人:8万
展开全部
使用的语句不一样呀,if的条件更多一些,switch后面必须有case 而且cas后面必须是规定的三种类型的数据!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式