黑马程序员技术交流社区
标题:
练习while循环时出现错误求解
[打印本页]
作者:
天空的风
时间:
2014-4-12 13:51
标题:
练习while循环时出现错误求解
本帖最后由 天空的风 于 2014-4-12 15:00 编辑
正在练习while循环时,联系题目从1加到100
int a = 100;
int b = 1;
int i = 0;
int sum = 0;
while (i < 50)
{
sum = a + b;
a--;
b++;
i++;
}
Console.WriteLine("从1加到100的合为{0}", sum
);
Console.ReadKey();
复制代码
的和,上面是代码:得到的结果却是101,求大神帮忙。
作者:
鲤鱼
时间:
2014-4-12 14:20
实际上,因为你一直都是a+b。
a-1加上b+1(1+100 2+99 3+88……)一直等于101 循环多少次sum都只等于101
而不是sum+下一个数 ( i=0;i++;sum=i+sum;)
另外出现问题时你可以选择程序某处设置断点,右键或者F9也可以,然后F10逐语句运行查看。
作者:
鲤鱼
时间:
2014-4-12 14:37
//int sum=0;
//int i = 0;
//while(i<100)
//{
// i++;
// sum += i;//sum=sum+i
//}
int a = 1, b = 100, sum = 0, i = 0;
while (i < 50)
{
sum = (a++) + (b--);
i++;
}
sum=sum*i;
Console.WriteLine("从1加到100的合为{0}", sum);
Console.ReadKey();
复制代码
两种方法,第一个是从1~100的累加
第二个是你的思路,不过略蛋疼。你只要把101乘以你循环的次数就是累加的结果。
作者:
天空的风
时间:
2014-4-12 15:00
鲤鱼 发表于 2014-4-12 14:37
两种方法,第一个是从1~100的累加
第二个是你的思路,不过略蛋疼。你只要把101乘以你循环的次数就是累加的 ...
果然是这样,谢谢。
作者:
伪善者。
时间:
2014-4-12 16:26
亲这个走循环的时候木有把新得到的a+b累加到 sum上
可以把sum=a+b 改成 sum+=(a+b)
另外像楼上说的
建议设置断点 调试运行一下 就一目了然了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2