有这样一道题:用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);
写了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);
i++;
sum = sum + i;
每次加的都是i+1
2、第一个方法是
i=0//比如i=0
i++;
sum = sum + i;//那么这边的i=1
第二个方法
i=0//比如i=0
sum = sum + i;//那么这边的i=0
i++;
第二个程序从99看就清楚了,到100的时候已经跳出while语句了,所以实际上市1到99除开7的倍数的累加