c语言else if 如果有多个条件满足是执行第一个满足条件的语句还是所有满足条件的语句?

加入有以下语句:
if (表达式1)
(语句1)
else if(表达式2)
(语句2)
else if (表达式3)
(语句3)
else
(语句4)
加入表达式表达式1、2、3的条件有重复使表达式1、2、3同时成立,那在这个选择语句中那个语句会被执行呢?

没太看明白你的意思,不过判断式是从第一个开始的(从上到下),一旦有条件满足,则整个if语句都将结束,比如表达式1满足后,就直接跳过整个if ··· else 结构(即开始执行语句4之后的代码)
另外判断“表达式”是否满足也是按照运算符的优先级执行,一旦满足条件即刻退出“表达式”,转而执行后面的语句。

按照你举的例子,只会执行语句1.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-31
1) if(表达式)
语句1;
2)if(表达式)
语句1;
else
语句1
3) if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
….
else if(表达式m)
语句m;
else
语句n;
b.优先级
if语句是有优先级的,第一个if优先级最高,最后一个else优先级最低。
对于形式2)、3)而言,if只执行其中的一条判断后面的语句,一旦有条件满足,则整个if语句都将结束;即当某一条件为真时,执行其后语句,后面的条件就不会判断了,结束if语句。
第2个回答  推荐于2017-09-19
return;
if (in==0&&max==i-1) /*如果条件成立,有什么办法不执行后面else if和else语句,也就是提早结束本函数*/;
else if(ax==0&&in==i-1) {t=*(a+i-1);*(a+i-1)=*a;*a=t;}
else {
t=*a;
*a=*(a+in);
*(a+in)=t;
if (max!=*(a+ax)) ax=in;
t=*(a+i-1);
puts("not end");/*测试是否执行了else语名*/
*(a+i-1)=*(a+ax);
*(a+ax)=t;
}
第3个回答  2014-02-09
第一个满足的 因为else本身是 否则的意思
第4个回答  2014-02-09
条件满足是执行第一个满足条件的语句还