为了账号安全,请及时绑定邮箱和手机立即绑定

关于while循环和for循环的问题

关于while循环和for循环的问题

不想她是借口 2017-03-05 17:06:06
拿这道题来说.用两种循环解出来以后.为什么while循环不用>=10;而for循环就要加上=号不然结果就为20. 为什么会少循环一个10.想想半天没想明白望解答
查看完整描述

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,对于{}是等效的。

查看完整回答
1 反对 回复 2017-03-05
?
历飞雨

TA贡献3条经验 获得超3个赞

不要考虑太多。按步骤来,一步步分析。

因为while循环设定的条件是(a<10),

在while的循环体中,

当前面条件a=9的时候,循环中执行了a++,这是也就是a=10了

查看完整回答
反对 回复 2017-03-05
?
我是伍佳呀

TA贡献2条经验 获得超0个赞

for循环是先执行a++再判断a<=10,当a=9时,a++后变成10。因为是a<=10所以可以进入循环。最后结果是20+10=30。 而while循环是先判断在执行a++,当a=9时,能够进入循环,然后a++变成10。
查看完整回答
反对 回复 2017-03-05
?
郭阳飞

TA贡献1条经验 获得超0个赞

while那个先做了a++,从1开始算了。当a为9时,a++之后a为10了
查看完整回答
反对 回复 2017-03-05
?
程序员大阳

TA贡献43条经验 获得超24个赞

下个断点,跟着程序跑一跑,就好理解了

查看完整回答
反对 回复 2017-03-05
  • Patricks丶
    Patricks丶
    断点是调试程序用的,编译器里就有,不是说明单独的软件什么的,看来萌新还要继续加油啊。
  • 不想她是借口
    不想她是借口
    调试那个选项我不会用阿
  • 程序员大阳
    程序员大阳
    不知道你用的啥编译器哦 使用编译器名字+调试 作为关键字百度下
点击展开后面1
?
慕粉1625273583

TA贡献1条经验 获得超0个赞

你可以把will语句中的a++放到if语句的后边,if语句还没执行a就自增了1,也就是说你的will语句是从1开始的,而不是0
查看完整回答
反对 回复 2017-03-05
?
Patricks丶

TA贡献10条经验 获得超2个赞

简单的说你是想在while循环里添加a++语句来实现跟for循环一样的效果吧。

但有一点你们搞清楚,就是这两个循环处理逻辑的逻辑顺序不对。

for循环是进入循环体,执行完里面的语句后在a++,再判断a<=10;

你写的while循环里,先做了a++然后执行了里面的语句。

所以,你把while循环里的a++放在b=a+b;这条语句之后,就会发现while条件也要啊a<=10才能得到30这个值。

问题出在你没搞懂for循环的自增与条件判断的步骤。

继续加油吧,我哪里没说清楚,你再问我。

查看完整回答
反对 回复 2017-03-05
  • 不想她是借口
    不想她是借口
    意思是for循环是先A++再判断是否成立对吗.还是A++是在下一轮再自加上,
  • Patricks丶
    Patricks丶
    for循环是执行完中括号里面的逻辑,在执行小括号里的a++后再判断是否成立的。 你想想看,a<=10这个条件在a=10的时候成立,然后执行for循环里面的语句。 执行完了,先a++,这时a=11了,便不满足条件了,所以就不进for循环了。 你可以在for循环的外面打印一下a的值,看看是不是等于11的。 总得来说就是,for循环的执行顺序是:初始化变量(i)赋值->中括号里的语句-> 变量(i)++ ->条件判断。
  • 不想她是借口
    不想她是借口
    多谢老哥,但是我又有了一个新问题 希望老哥解答一下,我已经提出来了
点击展开后面1
?
田心枫

TA贡献1064条经验 获得超383个赞

问题出在a++上

查看完整回答
反对 回复 2017-03-05
  • 3 回答
  • 0 关注
  • 2479 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信