关于自加自减的一个提问

发布时间:2024-05-20 06:24 发布:上海旅游网

问题描述:

main()
{int y=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
结果是852
我想问:for语句中的y--不算吗?第一次到y%3时应该是8还是依然是9?

问题解答:

这里主要是--运算和for循环的问题。for循环是给定初始值,先判断条件,条件成立,然后执行循环中的代码,执行完毕后然后才进行y--运算,不是一开始就进行y--的。所以当程序第一次进入到y%3,当然是9 啊,因为if(y%3==0)printf("%d",--y); 这句执行完才进行y--的,然后再判断条件,再执行。。。第一次循环时候,y=9,由于if(y%3==0)成立,执行--y,此时y=8,再执行y--,这时候y还是等于8,当下一次使用时候才会减一,紧接着判断y>0,这个时候y再减一,y=7;由于y%3!=0,不执行--y,再一次y--,y在判断时候变为6,这个时候y%3==0成立,执行 --y,y成为5.。。就这样分析。。。

算的 第一次是9 但在printf前进行了y-1=8 在printf后进行了y-1=7 然后再继续for

for中的y--在每次if语句执行完后执行

for中的y--当然算了,第一次那个y%3应该是9,因为刚开始y带进去时还没有进行相减,拉下来之后还是9.

热点新闻