C++真题中 int main() { int i=17; while(i>10) { if(--i%4==3)continue; else cout<<"i="<<i--<<endl }

答案是i=16 i=14 i=12 i=10,急求 解析
2024-11-02 20:06:51
推荐回答(4个)
回答(1):

i=17 到 11
if(--i%4==3)这句话 意思是,i先自减1,然后看i除以4余数是否是3,也是是当i 为16、12时跳过下面所有语句,继续执行while(i>10);当i 为17、15、14、13、11时执行else,此时,i就变成了 16、14、12、10

i-- 是先输出i的值,然后i再自减1.所以输出就是
--i是先自减,然后再算i的值

回答(2):

第一个循环:先看--i%4==3,这里面的--I应该是先先减一后使用,i=17时,--i ,i=16,16%4==3假,i--,此时是先用后减一,i=16,结果输出16,然后减一,i=15,进入第二个循环。
第二个循环:先看--i%4==3,i=15,--i,i=14,14%4==3假,和循环一相同,输出14,
一直到第四个循环,i=11进入的,计算完i=10了,输出10

回答(3):

--在前,视为先减在执行
--在后,视为先执行再减
if(--i%4==3)视为
i=i-1;
if(i%4==3)
cout<<"i="<cout<<"i="<i=i-1

回答(4):

问题不全吧。。。。。