intmain(void){
inta=2,b=-1,c=2;
if(a<b)//第1个if
if(b<0)//第2个if
c=0;
else
c++;
printf("%d\n",c);//输出结果为:2
return0;
}
/**分析如下:
你的理解是不对的,你可能还没有弄明白else与if的匹配规则:else总是与其最近的没有被else匹配的if相匹配,有点绕,以你的程序为例分析:
else的上面有两个if,与其最近的是第2个if,这个if还没有else与其匹配,那么else就与该if匹配,如果我们把上面的语句修改如下:
if(a<b)//第1个if
if(b<0)//第2个if
c=0;
elsec=1;//这里增加了一个else语句
else
c++;
如果改成了上面这样的话,由于第2个if已经有else与其匹配了,那里elsec++;这条语句就是与第1个if匹配了。
*/
希望对你理解if...else语句有所帮助吧。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。