• 4.4. break 和 continue 语句,以及循环中的 else 子句

    4.4. break 和 continue 语句,以及循环中的 else 子句

    break 语句,和 C 中的类似,用于跳出最近的 forwhile 循环.

    循环语句可能带有一个 else 子句;它会在循环遍历完列表 (使用 for) 或是在条件变为假 (使用 while) 的时候被执行,但是不会在循环被 break 语句终止时被执行。 这可以通过以下搜索素数的循环为例来进行说明:

    1. >>> for n in range(2, 10):
    2. ... for x in range(2, n):
    3. ... if n % x == 0:
    4. ... print(n, 'equals', x, '*', n//x)
    5. ... break
    6. ... else:
    7. ... # loop fell through without finding a factor
    8. ... print(n, 'is a prime number')
    9. ...
    10. 2 is a prime number
    11. 3 is a prime number
    12. 4 equals 2 * 2
    13. 5 is a prime number
    14. 6 equals 2 * 3
    15. 7 is a prime number
    16. 8 equals 2 * 4
    17. 9 equals 3 * 3

    (是的,这是正确的代码。仔细看: else 子句属于 for 循环, 不属于if 语句。)

    当和循环一起使用时,else 子句与 try 语句中的 else 子句的共同点多于 if 语句中的子句: try 语句中的 else 子句会在未发生异常时执行,而循环中的 else 子句则会在未发生 break 时执行。 有关 try 语句和异常的更多信息,请参阅 处理异常。

    continue 语句也是借鉴自 C 语言,表示继续循环中的下一次迭代:

    1. >>> for num in range(2, 10):
    2. ... if num % 2 == 0:
    3. ... print("Found an even number", num)
    4. ... continue
    5. ... print("Found a number", num)
    6. Found an even number 2
    7. Found a number 3
    8. Found an even number 4
    9. Found a number 5
    10. Found an even number 6
    11. Found a number 7
    12. Found an even number 8
    13. Found a number 9