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

i++的位置影响结果

 while(i<=100)

    {

      if(i%2==1)

        {

            sum=sum+i;

        }

        else

        {

            sum=sum-i;

        }

          i++;

    }

这里的i++放在if else 语句前后所得到的结果是正负相反的,这是为什么啊,求教啊!

提问者:zjwzzdj 2015-07-28 16:20

个回答

  • 紫泉
    2015-07-28 18:09:42
    已采纳

    假设在while前是 int i = 1; 那么就是0+1-2+。。。+99-100 = -50;如果你把i++放在if前面,那么就是0-2+3-...-98+99-100+101 = 50

  • 紫泉
    2015-07-28 18:10:27

    可以用这代码测试:

     #include<iostream>

     using namespace std;

     int main()

     {

     int sum = 0;

     int i = 1;

      while(i<=100)

        {

          i++;

          if(i%2==1)

            {

                sum=sum+i;

                cout<<"+"<<i;

            }

            else

            {

                sum=sum-i;

                  cout<<"-"<<i;

            }


        }

        cout<<endl<<sum;

        return 0;


     }