没太看明白你的意思,不过判断式是从第一个开始的(从上到下),一旦有条件满足,则整个if语句都将结束,比如表达式1满足后,就直接跳过整个if ··· else 结构(即开始执行语句4之后的代码)
另外判断“表达式”是否满足也是按照运算符的优先级执行,一旦满足条件即刻退出“表达式”,转而执行后面的语句。
按照你举的例子,只会执行语句1.
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语句。
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;
}
第一个满足的 因为else本身是 否则的意思
条件满足是执行第一个满足条件的语句还