3 回答
TA贡献3条经验 获得超4个赞
1、for循环里面的:for(int a=0;a<=10;a++)//a从0到10,没问题吧?记住for里面的a++,都是在循环体逻辑执行完之后才进行执行
2、while循环里面的:int a = 0;while(a<10)//a从0到9,没问题吧?
但是,while里面第一句:a++;注意这个在循环体逻辑的第一句,相当于直接修改了a的范围,从0-9改为了1-10
而for里面a是0-10,在计算累加的情况下,0-10和1-10是相同的结果。
实质上面的区别在于 a++的顺序,for中是在逻辑后执行,while是在逻辑前执行,自增操作放在逻辑前后对逻辑的影响肯定是不同的,其实有点像{}=b++和{}=++b的区别,把{}看做循环体逻辑,前面给0-10,后面给0-9,对于{}是等效的。
TA贡献3条经验 获得超3个赞
不要考虑太多。按步骤来,一步步分析。
因为while循环设定的条件是(a<10),
在while的循环体中,
当前面条件a=9的时候,循环中执行了a++,这是也就是a=10了
TA贡献2条经验 获得超0个赞
TA贡献10条经验 获得超2个赞
简单的说你是想在while循环里添加a++语句来实现跟for循环一样的效果吧。
但有一点你们搞清楚,就是这两个循环处理逻辑的逻辑顺序不对。
for循环是进入循环体,执行完里面的语句后在a++,再判断a<=10;
你写的while循环里,先做了a++然后执行了里面的语句。
所以,你把while循环里的a++放在b=a+b;这条语句之后,就会发现while条件也要啊a<=10才能得到30这个值。
问题出在你没搞懂for循环的自增与条件判断的步骤。
继续加油吧,我哪里没说清楚,你再问我。
添加回答
举报