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

用if。。。else和elseif有什么区别和联系?可以相互替换吗?,第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数目很多的情况下也不会降低执行效率。

在if else这样的条件判断语句中,必须以if开头,形如if-语句-else,但是如果有很多条件选择那就需要在else后边再加一个条件那就需要用if判断。用通俗的话讲就是if表示如果else表示否则,解释为如果条件成立执行if后边的语句,否则就执行else后边的语句。从这一就可以看出来否则后边还可以跟如果。

明白了吗,欢迎追问!

规则是else与他上面的最近的还没有配对的if配对。

例如判断三角形的。

if((a+b>c)&&(a+c>b)&&(b+c>a))。

if((a==b)||(a=c)||(b=c))。

printf("是等腰三角行")。

else printf("是普通三角形")。

else printf("不能够成三角形")。

这个没有细分,其中if((a==b)||(a=c)||(b=c))。

printf("是等腰三角行")。

else printf("是普通三角形")是一对,再外面的也是一对。

在同一个 if 结构中可以有多个 elseif 语句。第一个表达式值为 TRUE 的 elseif 语句(如果有的话)将会执行。在 php 中,也可以写成“else if”(两个单词),它和“elseif”(一个单词)的行为完全一样。句法分析的含义有少许区别(如果你熟悉 C 语言的话,这是同样的行为),但是底线是两者会产生完全一样的行为。

elseif 的语句仅在之前的 if 或 elseif 的表达式值为 FALSE,而当前的 elseif 表达式值为 TRUE 时执行。


欢迎分享,转载请注明来源:聚客百科

原文地址: http://juke.outofmemory.cn/pretty/2912944.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-02-07
下一篇 2023-02-07

发表评论

登录后才能评论

评论列表(0条)

保存