为什么while就不用把阶乘值重新赋值为1,for就要重新赋值为1

为什么while就不用把阶乘值重新赋值为1,for就要重新赋值为1

http://img1.sycdn.imooc.com//climg/5d7ee3570900bcca08240657.jpg

http://img1.sycdn.imooc.com//climg/5d7ee35709bf711810350843.jpg

我的while代码没有把阶乘积重新赋值为1,但是for就必须要赋值。 请务必对比着详细解答。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕酷酷 2019-09-16 11:48:16

同学你好,同学的代码中两种方式的执行流程是不同的,

while运算不需要重新赋值是因为,每次内循环b的值不会重新赋值为1,所以内循环执行完成后,a的值为4,外循环也跳出,具体流程如下:

当a等于1时,计算1的阶乘-->1*1,ji=1,然后计算阶乘和sum=1。

当a等于2时,计算2的阶乘-->1*2,ji=2,然后计算阶乘和sum=3。

当a等于3时,计算3的阶乘-->1*2*3,ji=6,然后计算阶乘和sum=9。

当a等于4时,计算3的阶乘-->1*2*3,ji=24,然后计算阶乘和sum=33。

for循环,如果不重新赋值,则外循环每循环一次,y值重新赋值为1,ji值则与上次的ji的值继续在内循环中,进行循环进行相乘。

当x等于1时,ji=1,sum=1。

当x等于2时,ji=3,sum=4。

当x等于3时,ji=12,sum=15。

当x等于4时,ji=288,sum=303。

如果不重新赋值,循环程序运行后ji的值被改变了,每次循环要把ji的值要重新置为1。

同学可以使用debug,设置断点,跟踪一下值得变化,就可以更加清晰。

另外,同学下次要将代码进行粘贴,不要截图哦~

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师