全部问题 > 当前问题

看不懂解释,有点乱,第一个if就看不懂,第二个if为假啊,怎么就结束执行了,应该继续第三个if啊

蒙婷 2016-3-2 13:58:07

共 6 个回答

蒙婷 2016-3-2 14:08:28

有人吗

嘿嘿大人 2016-3-2 14:10:31

#include <stdio.h>

main()

int x=1,y=0; 

if(!x) 

{

y++;

}  

else 

{

if(x==0)

{

if (x) y+=2;

    

else y+=3;

}

}

  printf("%d\n",y);

}

这样能看懂不

蒙婷 2016-3-2 14:14:22

恩恩,懂了 

嘿嘿大人 2016-3-2 14:50:01

回复 蒙婷:if和else有就近原则,靠近一对if和else就是一对,懂了就好,嘿嘿

蒙婷 2016-3-2 14:51:40

恩恩,谢老师

嘿嘿大人 2016-3-2 15:20:16

回复 蒙婷:不谢,加油,嘿嘿

问题来自: 嵌套的if语句
有以下程序
#include <stdio.h>
main()
{ int x=1,y=0;
  if(!x) y++;
  else if(x==0)
    if (x) y+=2;
    else y+=3;
  printf("%d\n",y);
}
程序运行后的输出结果是 ______ 。
A. 3
B. 2
C. 1
D. 0
答案:D
解析:这道题目if嵌套的很混乱,根据else的就近原则,我先把格式给大家复原调整一下。 if(!x) y++; else { if(x==0) { if(x) y+=2; else y+=3; } } 由于x=1,因此!x为假,进入else。x==0为假,结束执行,y没有赋值。因此选D。