int j=2; for( int i=7; i>0; i-=2 ) j*=2; 中i-=2和j*=2分别是什么意思呢? 谢谢回答
kuaidi.ping-jia.net 作者:佚名 更新日期:2024-05-17
for(int i=0;i<8;i++) 和for(int i=8;i>=0;i--)的区别!
j*=2等价于j=j*2;
i-=2等价于i=i-2;
i-=2 <===> i=i-2
j*=2 <===> j=j*2
i = i-2;
j = j*2;
for(int i=0;i<8;i++)这一段代码,要循环8次,在执行完循环体后执行i++。最后执行完之后i的值是8.不满足i<8,就会退出循环体。
for(int i=8;i>=0;i--)这一段代码,要循环9次,在执行完循环体后执行i--。最后执行完之后i的值是-1.不满足i>0,就会退出循环体。
另外前者生成的汇编代码会比后者较多,所以后者执行时的效率会有所提高。
希望能对你有帮助!!!
输出结果为:2
第一次循环后,i=2,j=0,不再满足循环条件,跳出for语句
j*=2等价于j=j*2;
i-=2等价于i=i-2;
i-=2 <===> i=i-2
j*=2 <===> j=j*2
i = i-2;
j = j*2;