- 4.4. break 和 continue 语句,以及循环中的 else 子句
4.4. break 和 continue 语句,以及循环中的 else 子句
break
语句,和 C 中的类似,用于跳出最近的 for
或 while
循环.
循环语句可能带有 else
子句;它会在循环耗尽了可迭代对象 (使用 for
) 或循环条件变为假值 (使用 while
) 时被执行,但不会在循环被 break
语句终止时被执行。 以下搜索素数的循环就是这样的一个例子:
- >>> for n in range(2, 10):
- ... for x in range(2, n):
- ... if n % x == 0:
- ... print(n, 'equals', x, '*', n//x)
- ... break
- ... else:
- ... # loop fell through without finding a factor
- ... print(n, 'is a prime number')
- ...
- 2 is a prime number
- 3 is a prime number
- 4 equals 2 * 2
- 5 is a prime number
- 6 equals 2 * 3
- 7 is a prime number
- 8 equals 2 * 4
- 9 equals 3 * 3
(是的,这是正确的代码。仔细看: else
子句属于 for
循环, 不属于if
语句。)
当和循环一起使用时,else
子句与 try
语句中的 else
子句的共同点多于 if
语句中的同类子句: a try
语句中的 else
子句会在未发生异常时执行,而循环中的 else
子句则会在未发生 break
时执行。 有关 try
语句和异常的更多信息,请参阅 处理异常。
continue
语句也是借鉴自 C 语言,表示继续循环中的下一次迭代:
- >>> for num in range(2, 10):
- ... if num % 2 == 0:
- ... print("Found an even number", num)
- ... continue
- ... print("Found a number", num)
- Found an even number 2
- Found a number 3
- Found an even number 4
- Found a number 5
- Found an even number 6
- Found a number 7
- Found an even number 8
- Found a number 9