重点区别三个关键语句:(continue,break,return)

continue

  • 它的执行逻辑:

    • 执行到这步关键字之后,
    • 它会找到最近的一个循环块
    • 之后它会跳过该循环块的本次循环
    • 在跳过之后,本次循环不再执行该循环块后的代码,但是会继续执行循环
  • 如:

    1
    2
    3
    4
    5
    6
    # 循环1:演示continue
    for i in range(3):
    if i == 1:
    print(f"循环1中遇到i={i},执行continue")
    continue # 跳过当前循环的后续代码,直接进入下一次循环
    print(f"循环1处理i={i}")
  • 这里在i == 1判断为True之后,不执行print(f"循环1处理i={i}")
    逻辑如下:

  • 循环1处理i=0
    循环1中遇到i=1,执行continue
    循环1处理i=2
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18


    ## break

    * 它的执行逻辑:
    相对于`continue`
    就多了一个:**它会执行循环之外块的后续代码**

    ```python
    def test_single_break():
    for i in range(5): # break所在的最近循环块
    if i == 3:
    print(f"触发break(i={i}),终止当前循环")
    break # 直接结束整个for循环
    print(f"循环执行:i={i}")
    print("循环外的代码(会执行)") # break不终止函数,只终止循环

    test_single_break()
  • 这里的运行结果是:

    1
    2
    3
    4
    5
    循环执行:i=0
    循环执行:i=1
    循环执行:i=2
    触发break(i=3),终止当前循环
    循环外的代码(会执行)

return

  • 直接终止整个函数,跳出循环块终止整个函数,嵌套在最内层的函数出现了return,也是直接终止所有嵌套的循环块,不管外层嵌套了多少个循环块
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def test():
    for i in range(5):
    print(f"外层循环执行到{i}")
    for j in range(3):
    if j == 1:
    print("终止整个循环以及函数")
    return
    print(f"内层循环执行到{j}")

    test()