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

来源:5-2 案例:阶乘的累加和

LLLL_

2019-09-16 09:24:10

http://img.mukewang.com/climg/5d7ee3570900bcca08240657.jpg

http://img.mukewang.com/climg/5d7ee35709bf711810350843.jpg

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

写回答

1回答

好帮手慕酷酷

2019-09-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,设置断点,跟踪一下值得变化,就可以更加清晰。

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

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

0

0 学习 · 11489 问题

查看课程