有这样一道题:用while和continue实现1到100之间的除了能被7整除之外的所有整数的和。
写了2段代码,看似一样,但计算结果却不同。请各位高手于以解释,为何会不同。感谢!第一段代码(计算结果为4301):
            int sum = 1;
            int i = 1;
            while (i <100)
            {
                if (i % 7 == 0)
                {
                    i++;
                    continue;
                }                i++;
                sum = sum + i;
            }
            Console.WriteLine(sum);
第二段代码(计算结果为4215):
int sum = 0;
            int i = 1;
            while (i < 100)
            {
                if (i % 7 == 0)
                {
                    i++;
                    continue;
                }
                sum = sum + i;
                i++;
            }
            Console.WriteLine(sum);

解决方案 »

  1.   

    你第一种
                    i++;
                    sum = sum + i;
    每次加的都是i+1
      

  2.   

    第一中情况 sum=1+2;第二种sum=1+1;后面的类推!
      

  3.   

    1、2个方法初始化的SUM不同。那么相差了1.
    2、第一个方法是
      i=0//比如i=0
      i++;
      sum = sum + i;//那么这边的i=1
      第二个方法
      i=0//比如i=0
      sum = sum + i;//那么这边的i=0
      i++; 
      

  4.   

    heheh you yisi a  www.cytdly.cn
      

  5.   

    第一个程序因为i是先累加,再返回来执行if语句,所以实际上累加是将7的倍数加上去了的,反而是8的倍数没有加上,所以累加实际上是1到100除开8的倍数。
    第二个程序从99看就清楚了,到100的时候已经跳出while语句了,所以实际上市1到99除开7的倍数的累加