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

关于if的位置不同结果不同

我将if分别放在前面和后面 得出sum的结果是不一样的,我猜应该是不一样的, 但是不理解为什么。 

当if在放在前面, n大于20了, 就直接退出循环了 这个可以理解, 但是当if放在后面,按照我的理解是n大于20后应该也不循环了,为什么结果会不一样呢?难道把n等于21也算进去了?

谢谢解答

正在回答

4 回答

因为程序是按代码的顺序来的  如果你放后面的你话 他会先执行前面的代码 就是说

当上次循环执行,if n > 20:   时因为n=20 ,所以条件成立程序还会在循环执行一次

sum += x    

    x *= 2

    n += 1     #到这n已经等于21了,所以说这个程序实际是执行了21次,而不是20次。

 if n > 20:     # 如果你想放在后面 吧这个条件改成 n=20就行啦

1 回复 有任何疑惑可以回复我~
#1

菜菜菜牙

n = = 20
2018-07-30 回复 有任何疑惑可以回复我~
#2

慕数据4411304 提问者

非常感谢!
2018-08-06 回复 有任何疑惑可以回复我~

if 位置不同结果是相同的呀,但是sum=sum+x 位置不同结果就不一样了,比如这样:

while True:

    x = x * 2

    n = n + 1

    sum = sum + x

    if n > 20:

        break

就会发生n=21但是还没到break 语句打破循环,所以再计算一次才会退出循环。


0 回复 有任何疑惑可以回复我~

if放在前面 n大于20了 直接退出循环,相比于放在后面,就少执行一次求和,结果就不一样了呀

0 回复 有任何疑惑可以回复我~

这个应该和n的初始值有关吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

关于if的位置不同结果不同

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信