输出结果为什么是2

来源:百度知道 编辑:UC知道 时间:2024/05/26 22:35:35
void main()
{
int x = 2,y = -1,z = 2;
if(x<y)
if(y<0)z = 0 ;
else z+=1;
cout<<z<<endl;
}

因为else是与最近的if配对
所以if(y<0)z = 0 ;
else z+=1; 这因看作在一起
所以当x<y为假时
直接跳到cout<<z<<endl;
所以z还是2

void main()
{
int x = 2,y = -1,z = 2;
if(x<y)
if(y<0)z = 0 ;///第一个if满足了才会执行
else z+=1;//对应第二个if所以不会执行
cout<<z<<endl;//所以z还是原始值
}

建议写程序格式好一点。
第一个条件就不满足,那肯定就直接输出Z啦!不是2是啥。
http://myspheres.net/cp/hanyonly/index.html