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

 我来答
风若远去何人留
2018-01-04 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数: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语句则更好。
博茨瓦纳的姑娘
推荐于2019-10-03 · TA获得超过2016个赞
知道答主
回答量:70
采纳率:50%
帮助的人:3.9万
展开全部
  1. switch语句,可读性好,整体流程清晰明确。

  2. if语句适应性更强,可以处理更多的情况。

拓展:

Switch:在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。在C#中,switch语句的控制表达式只能是某个整形(int,char,long等)或string。其他任何类型(包括float和double类型)只能用if语句。

if语句:是指编程语言(包括c语言,C#,VB,java,汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。if语句是指编程语言(包括c语言,C#,VB,java,汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
延蔼卫采波
2019-12-28 · TA获得超过3808个赞
知道大有可为答主
回答量:3064
采纳率:26%
帮助的人:211万
展开全部
switch语句只能根据一个变量的值进行转移,但if语句没有这样的限制。当然,判断一个条件比判断一堆条件速度要快的多。
个人觉得生成的汇编的代码,switch生成的是一系列的条件判断和转移指令,但if语句没有这样做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式