数据库

break和continue语句

2010-10-02

这是《Python开发技术详解》中的一节,其道理和c#应该是一样的

break和continue语句

break和continue语句用于控制语句的跳转,下面分别介绍break和continue语句的使用方法。

1.break语句

break语句可以使程序跳出switch语句,也可以结束循环语句,分别说明如下。

(1)break语句可以使程序跳出switch语句。例如,3.2.4节【例3-7】模拟switch分支结构中使用了break语句:

  1. operator = "+" 
  2. x = 1 
  3. y = 2 
  4. for case in switch(operator):# switch只能用于for in循环中  
  5. if case("+"):  
  6. print x + y  
  7. break 
  8. if case("-"):  
  9. print x - y  
  10. break 
  11. if case("*"):  
  12. print x * y  
  13. break 
  14. if case("/"):  
  15. print x / y  
  16. break 
  17. if case():# 默认分支  
  18. print "" 

第7行代码中使用了break。当变量operator的值为“+”,则执行表达式x + y。然后中断switch分支结构,后面的case分支都不会执行。此时输出结果为3。后面的break作用相同。当匹配到某个case后,程序将跳出switch。

如果第一个case不使用break子句,程序将输出两个值,分别是3和-1。因为输出表达式x + y后,分支结构并没有中断,程序将流转到下面一个case。然后继续计算表达式x- y的值,遇到后面的break语句才退出分支结构。

(2)在循环结构中,break语句可以提前结束循环。

【例3-11】在0~99的数中查找用户输入的值。

  1. x = input("输入x的值:")  
  2. y = 0 
  3. for y in range(0100):  
  4. if x == y:  
  5. print "找到数字:", x  
  6. break 
  7. else:  
  8. print "没有找到" 

第1行代码捕获用户输入的值,并把该值赋值给变量x。

第2行代码定义一个变量y,变量y用于暂存需要遍历的列表的值。

第3行代码使用for...in...循环遍历range(0, 100)返回的列表。range(0, 100)的返回值为\[0、1、2...99\]。

第4行代码判断输入的值是否等于列表中的值。如果条件成立,输出查找到的数字,并立即退出循环。循环结束,后面的else子句将不会被执行。

第7行代码,当没有找到输入的值时,else子句的代码将被执行。

注意break语句不能运行在循环体或分支语句之外,否则,Python解释器将提示如下错误:

  1. SyntaxError: "break"outside loop" 

2.continue语句

continue语句用于循环中的控制,当程序执行到continue语句时,程序将转到下一次循环。break语句会直接中断循环,而continue语句则是停止本次循环,进入下一次循环,循环语句并没有中止。

【例3-12】演示continue语句的使用方法。

  1. x = input("输入x的值:")  
  2. y = 0 
  3. for y in range(0100):  
  4. if x <> y:  
  5. print "y = ", y  
  6. continue 
  7. else:  
  8. print "x = ", x  
  9. break 

第6行代码,如果当前循环的次数与用户输入的数字不相等,则进入下一次循环。

第9行代码,如果当前循环的次数与用户输入的数字相等,则中断循环。