为什么while就不用把阶乘值重新赋值为1,for就要重新赋值为1
来源:5-2 案例:阶乘的累加和
LLLL_
2019-09-16 09:24:10
我的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,设置断点,跟踪一下值得变化,就可以更加清晰。
另外,同学下次要将代码进行粘贴,不要截图哦~
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题