if与else问题求助
#include <stdio.h>main()
{
int x=1,y=2,z=3;
if(x--)
y++,z++;
else
y--,z--;
printf("%d,%d,%d\n",x,y,z);
return 0 ;
}
这样输出结果为:0,3,4.
#include <stdio.h>
main()
{
int x=1,y=2,z=3;
if(x--)
y++,z++;
else
y--;z--;
printf("%d,%d,%d\n",x,y,z);
return 0 ;
}
这样输出结果为:0,3,3.
仅仅else中y后标点不同,结果便截然不同,为什么呢?
求助大神,感谢感谢! 只要有分号就是一句话,先z++跳出else后才z--的。 y--,z--; 这样写,就说明这是一个语句,属于else语句块
y--;z--;这样写,就说明这是两个语句,那么第一句y--属于else语句块,第二句z--不属于else语句块。执行完if…else之后会继续执行z-- y-- 在 else 里面,z-- 在 else 外面,所以 z-- 是肯定会执行的。 吴敌小白 发表于 2020-3-17 12:18
只要有分号就是一句话,先z++跳出else后才z--的。
嗯嗯。谢谢你! sunrise085 发表于 2020-3-17 12:20
y--,z--; 这样写,就说明这是一个语句,属于else语句块
y--;z--;这样写,就说明这是两个语句,那么第 ...
谢谢大佬!
页:
[1]