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

什么符号状态变量啊 不懂啊

sum+=i*flag;

flag*=-1

这两步不懂啊 什么意思呢 怎么算的 啊

提问者:1475228593 2015-02-16 19:36

个回答

  • 慕妹7265851
    2021-05-02 22:28:13

    当执行sum=sum+i*flag(1)后,

    执行flag*=-1 (变成 flag= flsg(1)*(-1))=-1 

    这个时候 flag已经是=-1了  

    在执行 i++后,sum=sum+i*(flag=-1)负数

      再执行一次flag*=-1 (变成 flag= flsg(-1)*(-1))=1, 正数!

     就是一直这样一正一负循环,  ? 我是这样理解的,看了半个小时理解这个代码意思! 希望对你有所帮助

  • 倾城独舞
    2015-12-17 20:56:59

    (百度搜到的解释,觉得不错就分享了。)

    这是一个编程的小技巧
    第一次执行循环的时候:
    flag = 1 , sum = 0, i = 1
    那么
    sum = sum + i * flag = 0 + 1 * 1 = 1  i作为正数加入
    接下来flag = flag * -1 = 1 * -1 = -1
    所以第二次执行循环的时候
    sum = sum + i * flag = 1 + 2 * -1 = 1 - 2 = -1 i作为负数加入
    接下来flag = flag * -1 = -1 * -1 = 1
    那么第三次执行循环的时候,i又可以作为正数加入,
    以此类推就可以达到判断符号的效果。

  • 杰一生
    2015-04-28 21:04:27

    不明白


  • 天下我心
    2015-04-03 10:51:42

    什么东东


  • 大伟_100
    2015-02-16 20:57:31

    sum+=i*flag等价于sum=sum+i*flag

    flag*=-1等价于flag=flag*(-1)