C语言中switch和if的适用方面有什么区别

 我来答
风若远去何人留
推荐于2017-09-27 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450108
专业C/C++软件开发

向TA提问 私信TA
展开全部
switch语句,可读性更好,整体流程看起来清晰明确。
if语句适应性更强,可以处理更多的情况。
所有的switch语句都可以写成if的形式,比如
switch(a)
{
case b:

break;

case c:

break;

default:

break;

}
可以写作
if(a==b)//case b
{
}
else if(a==c) // case c
{
}
else //default.
{

}

但是switch 语句,仅能够处理整型数值,即switch()括号中的判断的值,必须是整型的,而且每个case后面跟的值,也必须是整型的。
另外,对于大规模的连续数值,比如if(a>=1 && a<=100) 这样的语句,要用switch则需要连续写100个case,这种情况下,switch语句也是不适用的。

总体来说,对于散列的整型数据,用switch语句更清晰明确,而对于其它情况,if语句则更好。
大C49333
2014-04-28 · 超过75用户采纳过TA的回答
知道答主
回答量:135
采纳率:100%
帮助的人:60.9万
展开全部
switch语句只能根据一个变量的值进行转移,但if语句没有这样的限制。当然,判断一个条件比判断一堆条件速度要快的多。 个人觉得生成的汇编的代码,switch生成的是一系列的条件判断和转移指令,但if语句没有这样做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
炫柒神帲
推荐于2017-09-07 · 超过52用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:101万
展开全部
看情况。 if判断条件,处理逻辑表达式。 switch 通常处理算术表达式,或字符,当它等于什么什么,转向做什么。switch相当开关 如果“比较整数”,i1 是否大于 i2, 当然用if 如果决定转向,例如 i=1 画直线,i=2 画曲线,i=3 画圆,i=4 画虚线直线, i=5 画虚线曲线, i=6 画长方形 i=其他值 返回重选 这当然用switch,switch 执行快 from:http://wenwen.soso.com/z/q80249792.htm?ch=w.xg.llyjj
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
疯狗滚6803
2014-04-29 · 超过61用户采纳过TA的回答
知道答主
回答量:110
采纳率:100%
帮助的人:117万
展开全部
if 用于单一的是非条件判断 if else 用于两种情况的条件判断 switch: case 用于多种情况的条件判断,这些情况是并列关系。 多个if连用 用于连环条件判断,这些条件是串联关系。前一个if的成立,是后一个if进行判断的必须条件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户54256
2014-04-29 · 超过61用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:54.9万
展开全部
if()可以判断一个范围, switch可以判断更确切, 当然if也可单个来控制, if要比switch强..也更常用.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式