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

看不懂 请教大神

https://img2.mukewang.com/5bcb2258000143c507130289.jpg

sum+=i*flag;

flag*=-1;

是什么意思

提问者:谦虚的忍 2018-10-20 20:42

个回答

  • 慕粉0247298809
    2018-10-29 18:58:28
    已采纳

    读了一下前三轮循环

    int sum = 0; 

    int i,flag=1;


    i++;  //初始值是1,现在自增后是2

    sum += i*flag; //现在 sum=0 i=2 flag=1 

    //sum = 0+2*1     0+2*1=2   把2赋值给sum

    flag *= -1;//flag在这里变成了-1

    //flag =1*-1


    //开始第二轮循环


     i++;  //上一轮i的值是2,现在自增后是3

    sum += i*flag; //这时sum=2 i=3 flag=-1 

    //sum = 2+3*-1  

    flag *= -1;//flag在这里变成了1

    //flag =-1*-1


    //开始第三轮循环


     i++;  //上一轮i的值是3,现在自增后是4

    sum += i*flag; //这时sum=-1 i=4 flag=1 

    //sum = -1+4*1  

    flag *= -1;//flag在这里变成了-1

    //flag =1*-1


    //这么一直循环到i=100 

     

    }


  • fugace
    2018-11-01 20:33:49

    flag*=-1就是flag=flag*-1,不过不是用在本次sum += i*flag中而是用在下一次的循环中,也就是说是用在i=2时,这个时候sum += i*flag = -2,加上之前的i=1时候sum的值,就变成了1-2+3-4以此类推。flag的值是1,-1,1,-1这样循环。

  • 慕用4175530
    2018-10-20 21:21:10

    sum+=i*flag;的意思是sum=sum+i*flag

    flag*=-1;的意思是flag=flag*(-1)