问答详情
源自:4-10 循环结构之三种循环比较

while 和do while循环中i++在前不就从2开始了吗?

while(i <= 100)

{

    i++;

    sum += i*flag;

    flag *= -1;

}


提问者:星焱 2016-06-26 20:21

个回答

  • 慕盖茨2788539
    2016-07-23 14:36:52

    嗯,我想你想的是对的。的确答案里sum=的那个式子是从2开始计算的。

    按照答案的逻辑来计算的话:sum=2-3+4-5...+100-101=-50 (最后项会变成101而不是100)

    而按照本题的原意,即要把i++放在后面写。结果计算会变成:sum=1-2+3-4...+99-100=-50 

    两者结果是一样的。好巧...

  • weibo_30度角_仰望湛藍天_0
    2016-07-17 22:40:38

    我也觉得i++放前面,sum=的那个式子直接从2开始算的,可是代码按它提示打进去,答案是对的,想不通。可我觉得我i++和++i的区别搞懂了。

  • 星焱
    2016-06-26 20:59:56

    虽然i++的位置不影响最后的结果,但处理过程与题目的式子要一致的话,i++就必须放在后面

    while(i <= 100)

    {

        sum += i*flag;

        flag *= -1;

        i++;

    }