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

while True:循环先后顺序一比一直导致结果不一致????

sum = 0

x = 1

n = 1

while True:

       if n>20:

       break

   sum=sum+x

   x=x*2

   n=n+1

print sum


sum = 0

x = 1

n = 1

while True:

   sum=sum+x

   x=x*2

   n=n+1

if n>20:

       break

print sum

运行结果不一致:哪位大神能解答一下???

正在回答

4 回答

好像因为if n>20:放置的位置不同,导致n多循环了一次 所以结果不一致。。。。。我是小白,所以如果不对,别怪我!

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

七安_ 提问者

明白了,一个是n=1参加循环,输出n=n+1,一个是n=n+1参加循环,输出n
2016-07-28 回复 有任何疑惑可以回复我~

按照楼上说法,如果你改为n=19(或者是你n=21)就能得到正确答案,实际上并不会

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

反对已经采纳答案,实际上是一样的,我两种都试过,对于if放在循环结尾的和if处于开头的是一样的,因为在循环的最后都是执行if,处于开头的确实多进行了一次循环,但这次循环下面的代码块不会被执行,因为已经break了

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

运行的结果是一致的啊,都是1048575,没有错误,都是一样的

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

七安_ 提问者

你可以才交互环境试一下
2016-07-28 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

while True:循环先后顺序一比一直导致结果不一致????

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