用if。。。else和elseif有什么区别和联系?可以相互替换吗?

 我来答
MyOpen
2019-05-21 · TA获得超过2861个赞
知道答主
回答量:68
采纳率:0%
帮助的人:4.1万
展开全部

if...else和elseif在结构上的区别:

if (条件句)+ 执行语句1

else + 执行语句2

如果条件句成立,则执行语句1。如果不成立,则执行语句2;

if (条件句1)+ 执行语句1

elseif (条件句2)+ 执行语句2

......

elseif(条件句n-1)+ 执行语句n-1

else + 执行语句n

end

如果条件句1成立,则执行语句1,如果条件句1不成立,然后条件句2成立,则执行语句2,如果所有条件都不成立,则执行执行语句n。

这两个语句是可以互换的,一般看哪种方便就用哪种,例如

if(a<b) a=1+1 

if(a<c) b=1+1 else c=1+1

else c=1+1

相当于

if(a<b) a= 1+1

elseif(a<c) b=1+1

else c=1+1

扩展资料:

switch-case和if-elseif都具有提供多路分支的能力,很多情况下都可以替换着使用。

但其实他们的实现机制是不一样的

对于有多个判断条件的if语句,程序在执行时从第一个条件开始进行判断,如果测试条件为真,则执行相应的语句;如果不为真,则继续判断下一个条件。最快的情况下,需要到最后一个分之才能执行完成。对于分之较多的情况,效率尤其低下。

但是,switch语句得益于跳转表(jump table)的实现,可以根据测试条件直接跳转到相应的分支语句上去,不需要逐个对条件进行判断,在case数目很多的情况下也不会降低执行效率。

忆江南忆梦
高粉答主

2019-08-08 · 关注我不会让你失望
知道答主
回答量:111
采纳率:100%
帮助的人:1.5万
展开全部

C语言中if,elseif和else的主要区别是用法的区别。

if语句用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。如果后面没有连接else则判断为假时不执行任何操作。

else if是镶嵌在if语句里的,如果一个程序需要2个或以上的if语句时,则使用else if语句,表示条件判断为假时,再次进行条件判断。

else必须使用在if语句里,如果没有if,就不能使用else。

扩展资料

if语句和else if语句的结构

1、if

if(express)语句1

else 语句2

当express为真时,执行语句1,假时执行语句2,只能是一个语句,那么如果要使用多个语句,必须使用{}表示语句块

2、else if

if(express1)语句1

else if(express2) 语句2

else 语句3

因为一个if结构可以称为一个复合语句,所以,在这个嵌套if中,第二个if为一个语句,前者是第二个if为第一个if的else分支的语句,而后者为平行的两个if分支复合语句。

参考资料来源:

百度百科-if语句

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hit_lubin
推荐于2017-11-24 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:1999万
展开全部
if ... else

明显是对于if列出的条件,如果符合走if的分支,不符合,走else的分支。
而if ... elseif.... elseif .... else ...
这个,是多个条件,多个分支,最后都不符合,才走到else的分支。
你每次肯定不会总是值判断一个条件成立或不成立吧?
比如,判断一个人的出生月份,每个月都不一样。
那么一共就12个分支了,使用if ... else ,就只能在else里面再一直的套if else...了
可是使用if ... elseif... elseif...这样是可以列出12个分支的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjuzhangzhu
2011-07-31
知道答主
回答量:19
采纳率:0%
帮助的人:8万
展开全部
if (条件句)+执行句
else +执行句
end
如果条件句成立,则执行if 后面的执行句。如果不成立,则执行esle后面的句子;
if (条件句1)+执行句
elseif (条件句2)+执行句
else +执行句
end
如果条件句1成立,则执行if后面的执行句,如果条件句1不成立,然后条件句2成立,则执行elseif后面的执行句,如果条件句1和条件句2都不成立,则执行else后面的执行句。
所以if 。。。esle 与elseif 不是一个概念。
不能互换的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
muziyuxuan
2011-07-31
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
他们的区别是if……else 后面不能再跟其他判断 而elseif后面还可以跟多个判断条件
例如 if(a>b){……}else{}
if(a>b){……}elseif(a<b){……}else{……}
后者可以代替前者
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式