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

为什么我把if-break放到while循环后面了结果依然正确呢?

标准答案中if语句放到了while循环一开始的地方,先判断了n是否大于20,如果大于20则退出循环;然后我自己试了一下把if放在while循环后面,运行依然是成功的,这样不应该先对sum、x、n进行赋值后才退出循环吗?判断出来n>20之前已经对x又赋了第21个值不是吗?

http://img1.sycdn.imooc.com//5dc134c40001cd7f07110299.jpg

正在回答

1 回答

这种情况,放在前面后放在最后其实是一样的。

如果写在后面,当执行完成n=n+1之后,n的值是21,所以条件满足跳出循环。

如果写在前面,当执行完成n=n+1之后,n的值为21时,不会跳出循环,判断while条件,因为直接写了true所以会进入循环。而循环内部第一句就是if n>20: break;,满足条件,跳出循环。

while True:
    if n>20:
        break;
    sum =sum+x
    x=x*2
    n=n+1

所以其实这两种情况求得的sum值都是一暗影的,都没有问题。

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

举报

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

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

进入课程

为什么我把if-break放到while循环后面了结果依然正确呢?

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