attitude.wy 发表于 2017-9-6 21:36:48

break 和 continue 的疑问

上完第9课, 对于break和continue的用法不是很能理解. 特别是课上最后一个例子:

>>> for i in range (10):
    if i%2!=0:
      print (i)
      continue
    i+=2
    print (i)

2
1
4
3
6
5
8
7
10
9

为什么会打印出这个列表我还是一脸懵逼.. 小甲鱼老师在里面就说了听回之前他说的分析,但我听了还是不懂. 我的理解, continue之前的语句是明白的, print出来的会是 1,3,5,7,9 这几个奇数.

但为什么加了 continue 以后, 会把 2,4,6,8,10 加插在他们中间? 不懂啊....求大佬们教我

冬雪雪冬 发表于 2017-9-6 21:51:47

第一次循环,i=0,if条件不成立,执行i+2,i变成2,打印2。
第二次循环,i=1,这里要注意,不管循环中如何改变i,再到循环的头部时,仍按range的值进行。if条件成立,打印1,continue跳到下次循环。
以此类推。

ba21 发表于 2017-9-6 22:48:51

不要想得太复杂。
continue 中断本次循环,继续下一次的循环。
break退出整个循环。

这不就好理解了么

attitude.wy 发表于 2017-9-7 20:20:12

冬雪雪冬 发表于 2017-9-6 21:51
第一次循环,i=0,if条件不成立,执行i+2,i变成2,打印2。
第二次循环,i=1,这里要注意,不管循环中如何 ...

谢谢大佬,我明白了

家丁 发表于 2017-9-10 16:37:50

{:10_256:}

疯子的疯 发表于 2017-9-21 08:52:16

不论for内部i怎么操作,在for开始时是按照0-10逐个遍历的,continue跳出当次循环,重新回到for开始的位置进行下次遍历。
页: [1]
查看完整版本: break 和 continue 的疑问