设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 22774|回复: 13
打印 上一主题 下一主题

【Python 第35课】 continue

[复制链接]

10

主题

0

好友

52

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2013-7-25 19:26:37 |只看该作者 |倒序浏览
break是彻底地跳出循环,而continue只是略过本次循环的余下内容,直接进入下一次循环。


在我们前面写的那个统计分数的程序里,如果发现有成绩不足60分,就不记入总成绩。当然,你可以用if判断来实现这个效果。但我们今天要说另一种方法:continue。
  1. for score in data[1:]:
  2.    point = int(score)
  3.    if point < 60:
  4.        continue
  5.    sum += point
复制代码
注意:无论是continue还是break,其改变的仅仅是当前所处的最内层循环的运行,如果外层还有循环,并不会因此略过或跳出。

在脑中模拟运行下面这段程序,想想会输出什么结果。再敲到代码里验证一下:
  1. i = 0
  2. while i < 5:
  3.    i += 1
  4.    for j in range(3):
  5.        print j
  6.        if j == 2:
  7.            break
  8.    for k in range(3):
  9.        if k == 2:
  10.            continue
  11.        print k
  12.    if i > 3:
  13.        break
  14.     print i
复制代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
QQ群:312723402

面向零基础初学者的编程课
每天5分钟,轻松学编程




回复

使用道具 举报

0

主题

0

好友

88

积分

注册会员

Rank: 2

沙发
发表于 2013-8-24 18:32:22 |只看该作者
最后这段代码不太理解,i  j  k分别代表着什么?什么时候横着输出,什么时候竖着输出呢?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2013-8-26 21:15:17 |只看该作者
匠逍之岿 发表于 2013-8-24 18:32
最后这段代码不太理解,i  j  k分别代表着什么?什么时候横着输出,什么时候竖着输出呢? ...

i j k就是三个用来记录循环次数的量。这段代码其实没什么特别意义,只是让你试着体会continue和break的不同效果。可以把代码运行一下,根据结果来分析代码的运行路径
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

47

积分

新手上路

Rank: 1

地板
发表于 2015-4-13 20:58:18 |只看该作者
最后这段代码,没看明白,打印的结果和自己想的不一样,能详细讲下流程么,谢谢。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

5#
发表于 2015-4-14 13:10:54 |只看该作者
muneer 发表于 2015-4-13 20:58
最后这段代码,没看明白,打印的结果和自己想的不一样,能详细讲下流程么,谢谢。 ...

遇到break就跳出当前一层循环,遇到continue就直接进入当前一层循环的下一次

你可以在程序中的各个循环中 print i,j,k 来看看执行顺序

或者有可以打断点的ide,就单步执行,看看程序是怎么走的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

47

积分

新手上路

Rank: 1

6#
发表于 2015-4-14 13:57:05 |只看该作者
crossin先生 发表于 2015-4-14 13:10
遇到break就跳出当前一层循环,遇到continue就直接进入当前一层循环的下一次

你可以在程序中的各个循环 ...

昨晚后来自己想明白了,多谢。
回复

使用道具 举报

0

主题

0

好友

39

积分

新手上路

Rank: 1

7#
发表于 2015-4-23 15:56:07 |只看该作者
在后面那个程序里面把continue改成break运行的结果是一样的呀
回复

使用道具 举报

0

主题

0

好友

215

积分

中级会员

Rank: 3Rank: 3

8#
发表于 2015-4-27 08:33:35 |只看该作者
周一了 滚回来学习
回复

使用道具 举报

0

主题

0

好友

54

积分

注册会员

Rank: 2

9#
发表于 2015-5-28 01:37:58 |只看该作者
  1. #0
  2. #1
  3. #2
  4. #0
  5. #1
  6. #1
  7. #0
  8. #1
  9. #2
  10. #0
  11. #1
  12. #2
  13. #0
  14. #1
  15. #2
  16. #0
  17. #1
  18. #3
  19. #0
  20. #1
  21. #2
  22. #0
  23. #1
  24. i = 0
  25. while i < 5:
  26.    i += 1
  27.    for j in range(3):
  28.        print j #0\n1\n2
  29.        if j == 2:
  30.            break
  31.    for k in range(3):
  32.        if k == 2:
  33.            continue
  34.        print k
  35.    if i > 3:
  36.        break
  37.    print i
复制代码
回复

使用道具 举报

0

主题

0

好友

121

积分

注册会员

Rank: 2

10#
发表于 2016-5-6 11:12:47 |只看该作者
crossin先生 发表于 2015-4-14 13:10
遇到break就跳出当前一层循环,遇到continue就直接进入当前一层循环的下一次

你可以在程序中的各个循环 ...

遇到break就跳出当前一层循环,遇到continue就直接进入当前一层循环的下一次
这句话一下子让我明白了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 10:39 , Processed in 0.016342 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部