Python循环之中断与继续教程

for循环里还有两个秘密,一个秘密叫break,一个秘密叫continue。它们配合默契,能让我们的编程水平更上一层楼,现在我们就来学习它们的用法吧。

break 语句

开运动会了,同学们跃跃欲试。只听见一声令下,同学们如离弦之箭地跑了出去。突然,山雨欲来风满城,雷公电母齐奏乐,倾盆大雨泻不止,淋得同学一声湿。校长先生立宣布:比赛中断把家还!中断的英文是break,在Python编程中,也有break命令,它能中断什么?看看下面小框框,学习中断莫慌张:

>>> for i in range(10):       #  迭代i拾次
   if  i > 5:break      # 如果i大于5,中断循环
print(i,end=' ')              # 打印i的值,以空格结束

  
0 1 2 3 4 5 
>>>

在上在的代码中,第2句,瞧准了,它的意思很好理解:如果i大于5,则中断。我们看到的结果是上面的for循环只打印了从0到5的数据,其它的数据被break强行“中断”了。

来次小小的总结,break是用来中断循环语句的,一般情况下,它会在一个条件判断语句中,当条件满足后,就会中断循环,循环也就运行结束了。需要注意的是,它只会中断自己所在的这一层for循环。如果有嵌套的for循环,那它可不会越级地中断上一层的for循环。请看下面的代码:

>>> for k in range(5):       # 迭代k伍次
       for i in range(10):   # 迭代i拾次
     if i > 5 :break         # 如果i大于5则中断
     print(i,end=' ')        # 打印i的值,以空格结束
  print()

  
0 1 2 3 4 5 
0 1 2 3 4 5 
0 1 2 3 4 5 
0 1 2 3 4 5 
0 1 2 3 4 5

上面的代码打印了5行0 1 2 3 4 5。这说明break对上一层的for循环一点影响也没有。

continue语句

天空放晴万里无云,学生上学比赛继续进行。前面,由于下了大雨,校运会被中断了,这次由于天气变好了,所以比赛又继续接着进行了。“继续”的英文为continue。在Python中也有continue语句,它是继续下一轮,或继续下一次迭代的意思。它像break语句一样,也是放在循环语句中。下面的代码展示了它的用法:

>>> for i in range(10):          # 迭代i拾次
  if i == 5 :continue      # 如果i等于5,继续下一次迭代
  print(i,end=' ')         # 打印i的值,以空格结束

  
0 1 2 3 4 6 7 8 9 
>>>

上面可怜的5,被忽略了,它并没有被打印出来。这是由于在for循环里的if语句捣的鬼。第2行的意思是说,如果i和5相等,那么继续下一次迭代,所以5就打印不到了。下面我们再看一个例子:

>>> import random                  # 导入随机模块
>>> for i in range(5):             # 迭代i伍次
        x = random.randint(-5,5)   # 生成 从-5到5之间的随机整数
  if x == 0: continue        # 如果x等于0,继续下一次迭代
  print(1/x)                 # 打印1/x的值

  
-0.5
0.2
0.3333333333333333
0.3333333333333333
0.25

在上面的代码,如果没有if语句,由于x的值可能为0,所以程序会出错,但是通过合理地运用continue语句避免了发生1除以0的情况,小兵也有大用途哦。