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

代码出了什么问题呢

sum=0

i=1

while True:

    if i%2==0:

        continue

    sum=sum+i

    i=i+1

    if i>100:

        break

print (sum)


正在回答

3 回答

http://img1.sycdn.imooc.com//5e3a8a880001987902630369.jpg以下是我的个人理解,希望会对题主有帮助。

左侧图示的代码可以达到题主想要的目的。这里要明确两个概念:

continue和break的:

    break:用来跳出整个循环

    continue:跳过本次循环体中余下尚未执行的语句,立即进行下一     次的循环,可以理解为仅结束本次循环。

在这里,题主的代码块是个死循环。

i=1时,没问题,代码可以执行,执行一次循环后,i=2

i=2时,将执行continue,此时,后续代码不会被执行,所以 i 不会执行+1,直接跳到下一次循环,当下一次执行时,i 还是2,此时构成死循环。



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

明白了,谢谢

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

在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环。

您的continue用错啦

题目要求是100以内奇数和,所以逻辑是判断i是否已经超过100,判断i是否为奇数

所以i值的更新需要在continue前面

您的代码会在第三行至第五行(第二次循环时,也就是i = 2 s时)陷入死循环,continue外的那个if(第四行)一旦条件符合(i为偶数),就会返回while ture(第三行),此时 i并未更新,始终等于2

故我会修改为:

sum = 0

i = -1

while True:

    i = i + 1

    if i > 100:

        break

    if i % 2 == 0:

        continue

    sum = sum + i

print sum


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

举报

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

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

进入课程

代码出了什么问题呢

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