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

代码顺序问题

为什么

sum+=i*flag;

      flag*=-1;

得到的是-50而

flag*=-1;

sum+=i*flag;

得到的结果是50.

提问者:慕村6484577 2020-08-14 19:41

个回答

  • qq_呢喃不语_jquxAK
    2020-08-15 13:57:27
    已采纳

    如果你把flag*=-1;放到前面意味着首先把符号变成负号,即此时flag为-1,而不是1,;当第一个数取1,sum+=i*flag;得到的sum值为-1,然后再继续循环,就相当于把1-2+3-4.........,变成-1+2-3+4..........,也就是说把基数减偶数变成了偶数减奇数,所以结果就变相反的了