第四五行代码能互换吗?会有什么问题,为什么计算结果差了98
sum = 0
x = 1
while x < 98:
sum = sum + x
x = x + 2
print sum
sum = 0
x = 1
while x < 98:
sum = sum + x
x = x + 2
print sum
2018-10-15
1、不能。统一作用域下的代码执行顺序是从上往下的(大多数情况)。
2、互换之后会导致执行条件存在漏洞致使结果的偏移。
3、98以内的奇数和,互换之后会先执行x + 2 部分。代入看看,当x = 1时,先执行 x + 2 = 3,sum = 0 + 3,那么最终结果将缺失x的初始值1;当x = 97(x<98)循环还在继续,仍会先执行x + 2 = 99(x>98),sum = sum + 99,最终结果就多了这个99,再与少的1相减后,你的答案就会多出正解98;正确的情况下,当x = 97时,先执行sum = sum + 97,再执行 x + 2 = 99 (x>98),这时while就会中断循环不再执行。
举报