合聚咖

合聚咖

关于C语言中IF函数的问题

admin

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语句有所帮助吧。