A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© taolove 中级黑马   /  2015-6-3 22:03  /  2838 人查看  /  35 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

11)int i=1,sum=0;
while(i<=5)sum+=i;
2)int i,sum=0;
for(i=1;i<=5;i++)
sum+=i;
这两个运行结果为什么不同?

35 个回复

倒序浏览
你的第一个怎么退出循环??写错了吧
回复 使用道具 举报
你第一个都没有自增语句,i++,程序怎么退出循环呢?这个i++如果放在sum+=i 后面的话 得出的答案是一样的啊,如果放在sum+i前面的话肯定不一样,因为在i赋值给sum的时候已经多加个1了!
回复 使用道具 举报
自己的语言写错了
回复 使用道具 举报
taolove 来自手机 中级黑马 2015-6-4 07:21:44
报纸
任伟 发表于 2015-6-4 05:50
自己的语言写错了

第一个改为while(i++<=5)答案运行结果还是不一样的!
回复 使用道具 举报
taolove 来自手机 中级黑马 2015-6-4 07:23:43
地板
人生充满期待 发表于 2015-6-4 01:13
你第一个都没有自增语句,i  ,程序怎么退出循环呢?这个i  如果放在sum =i 后面的话 得出的答案是一样的啊 ...

第一个改为while(i++<=5)答案运行结果还是不一样的!
回复 使用道具 举报
taolove 来自手机 中级黑马 2015-6-4 07:25:35
7#
yi95392 发表于 2015-6-4 00:27
你的第一个怎么退出循环??写错了吧

第一个改为while(i++<=5)答案运行结果还是不一样的!
回复 使用道具 举报
本帖最后由 洋柿子 于 2015-6-4 08:10 编辑

while(i++<=5)貌似也不是循环控制条件吧,i++的值一直是1,也应该退不出循环。(错误的理解。。。。。。)
回复 使用道具 举报
楼上的大神们好像已经找出问题所在了
回复 使用道具 举报
taolove 来自手机 中级黑马 2015-6-4 07:35:54
10#
洋柿子 发表于 2015-6-4 07:28
while(i  

这是基础视频里面的,就是这样写的错不了!可以运行!但是自增得到的sum不同!不知道为什么
回复 使用道具 举报
taolove 发表于 2015-6-4 07:35
这是基础视频里面的,就是这样写的错不了!可以运行!但是自增得到的sum不同!不知道为什么 ...

循环控制条件i++<=5,进入到循环体sum+=i的i是从2开始的到6结束,2+3+4+5+6=20才对。
回复 使用道具 举报
11)int i=1,sum=0;
while(i<=5)
{
sum+=i;
i++;
}
2)int i,sum=0;
for(i=1;i<=5;i++)
sum+=i;


这2个的值怎么可能不一样 ?你再试一下,如果第一个
int i=1,sum=0;
while(i<=5)
{
i++;

sum+=i;
}
你i++放在前面的话结果肯定不一样,这个最后得出的和 肯定比下面多5个,因为sum在累加的时候,i的值已经+1了
回复 使用道具 举报
本帖最后由 人生充满期待 于 2015-6-4 23:06 编辑
taolove 发表于 2015-6-4 07:21
第一个改为while(i++


你这样写肯定比下面那个多加5,因为你再给sum累加i的值之前i已经先加过1了,而第二个是先把i的值累加给sum,然后i再自增判断条件然后循环
回复 使用道具 举报
你i++都没弄懂,i++这个表达式的值就没变过,只是i的值增加了。
回复 使用道具 举报
循环要有退出调教,很明显你的while循环里少了个i++;所以就成了一个死循环。
回复 使用道具 举报
while(i++<=5)sum+=i; 是从2加到6 for循环是从1加到5 当然不一样 ;
回复 使用道具 举报
while死循环
回复 使用道具 举报
你应该看下while的基本格式,对照下是否一致
回复 使用道具 举报
第一个white循环i值没有改变,是一个死循环,根本退出不了。第二个for循环累加5次,sum的值最后为15.
回复 使用道具 举报
第一个i永远都是<=5啊 死循环啊
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马