为何结果为2,

来源:百度知道 编辑:UC知道 时间:2024/06/15 16:53:41
#include <stdio.h>

main()

{int x=2,y=-1,z=2;

if(x<y)

if(y<0)z=0;

else z+=1;

printf("%d\n",z);}

因为IF语句是一个判断语句,(int x=2,y=-1,z=2) 在X<Y中X为2不小于Y的-1 所以直接跳过下面的语句,直接运行printf("%d\n",z)语句,打印Z. Z=2 所以结果也就是2

#include <stdio.h>

main()

{int x=2,y=-1,z=2;

if(x<y)

{
if(y<0)z=0;

else z+=1;
}
printf("%d\n",z);}

这是系统的理解。这也就是强调加{}的原因

程序可以这样看
#include <stdio.h>

main()

{int x=2,y=-1,z=2;

if(x<y)
{

if(y<0)z=0;

else z+=1;//if....else.....是一个语句,不能拆开看,else不能独立使用。
}
printf("%d\n",z);}

if(x<y)
{
if(y<0)
z=0;
}

else z+=1;
这样写就是三了

记住,如果没有大括号,else是跟着离他最近的IF语句。

那个else是跟第二个if成套的,实际上这个程序也可以这样写:
#include <stdio.h>

main()

{int x=2,y=-1,z=2;

if(x<y)

{
if(y<0)z=0;

else z+=1;
}

printf("%d\n",z