这是《Python开发技术详解》中的一节,其道理和c#应该是一样的
break和continue语句
break和continue语句用于控制语句的跳转,下面分别介绍break和continue语句的使用方法。
1.break语句
break语句可以使程序跳出switch语句,也可以结束循环语句,分别说明如下。
(1)break语句可以使程序跳出switch语句。例如,3.2.4节【例3-7】模拟switch分支结构中使用了break语句:
- operator = "+"
- x = 1
- y = 2
- for case in switch(operator):# switch只能用于for in循环中
- if case("+"):
- print x + y
- break
- if case("-"):
- print x - y
- break
- if case("*"):
- print x * y
- break
- if case("/"):
- print x / y
- break
- if case():# 默认分支
- 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的数中查找用户输入的值。
- x = input("输入x的值:")
- y = 0
- for y in range(0, 100):
- if x == y:
- print "找到数字:", x
- break
- else:
- 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解释器将提示如下错误:
- SyntaxError: "break"outside loop"
2.continue语句
continue语句用于循环中的控制,当程序执行到continue语句时,程序将转到下一次循环。break语句会直接中断循环,而continue语句则是停止本次循环,进入下一次循环,循环语句并没有中止。
【例3-12】演示continue语句的使用方法。
- x = input("输入x的值:")
- y = 0
- for y in range(0, 100):
- if x <> y:
- print "y = ", y
- continue
- else:
- print "x = ", x
- break
第6行代码,如果当前循环的次数与用户输入的数字不相等,则进入下一次循环。
第9行代码,如果当前循环的次数与用户输入的数字相等,则中断循环。