• python 里的 continue 和 break 语法理解


    continue 的作用:只要程序遇到 continue ,本次循环就不继续了,直接进入下一次循环

    break 的作用:只要程序遇到 break ,就会结束当前这个循环。注意如果是多层嵌套循环,只结束当前这一层的循环。

    ____________________________________________________________________________________________

    要求跳过第三层

    continue:

    for i in range(1,5):
        print(f"----------{i}层----------")
        for j in range(1,6):
            if i == 3:
                continue
            print(f"L{i}-{i}0{j}室")
    
    
    
    
    #执行结果
    ----------1层----------
    L1-101室
    L1-102室
    L1-103室
    L1-104室
    L1-105室
    ----------2层----------
    L2-201室
    L2-202室
    L2-203室
    L2-204室
    L2-205室
    ----------3层----------
    ----------4层----------
    L4-401室
    L4-402室
    L4-403室
    L4-404室
    L4-405室

    break:

    for i in range(1,5):
        print(f"----------{i}层----------")
        for j in range(1,6):
            if i == 3:
                #print("-")
                break
            print(f"L{i}-{i}0{j}室")
    
    
    #执行结果
    ----------1层----------
    L1-101室
    L1-102室
    L1-103室
    L1-104室
    L1-105室
    ----------2层----------
    L2-201室
    L2-202室
    L2-203室
    L2-204室
    L2-205室
    ----------3层----------
    ----------4层----------
    L4-401室
    L4-402室
    L4-403室
    L4-404室
    L4-405室

    可以看见第三层无论 continue 还是 break 是没有输出的,那么真的跳过了吗,看下面代码

    continue:

    ----------1层----------
    L1-101室
    L1-102室
    L1-103室
    L1-104室
    L1-105室
    ----------2层----------
    L2-201室
    L2-202室
    L2-203室
    L2-204室
    L2-205室
    ----------3层----------
    -
    -
    -
    -
    -
    ----------4层----------
    L4-401室
    L4-402室
    L4-403室
    L4-404室
    L4-405室

    break:

    ----------1层----------
    L1-101室
    L1-102室
    L1-103室
    L1-104室
    L1-105室
    ----------2层----------
    L2-201室
    L2-202室
    L2-203室
    L2-204室
    L2-205室
    ----------3层----------
    -
    ----------4层----------
    L4-401室
    L4-402室
    L4-403室
    L4-404室
    L4-405室

    可以看到 continue 第三层小循环每一次都执行了,只是没有显示内容。break 判断了一次跳过了该次小循环。

    ————————————————————————————————————————————————

    但是我们要的是跳出第三层小循环,刚才那个肯定不行,那么怎么改呢?

    continue:

    for i in range(1,5):
        print(f"----------{i}层----------")
        if i == 3:
            print("三层不通")
            continue
        for j in range(1,6):
            print(f"L{i}-{i}0{j}室")
    
    
    #执行结果
    ----------1层----------
    L1-101室
    L1-102室
    L1-103室
    L1-104室
    L1-105室
    ----------2层----------
    L2-201室
    L2-202室
    L2-203室
    L2-204室
    L2-205室
    ----------3层----------
    三层不通
    ----------4层----------
    L4-401室
    L4-402室
    L4-403室
    L4-404室
    L4-405室

    我们把 continue 放在外层,可以看到,跳过了第三层循环。

    那么 break 放在外层会是什么效果呢:

    for i in range(1,5):
        print(f"----------{i}层----------")
        if i == 3:
            print("三层不通")
            break
        for j in range(1,6):
            print(f"L{i}-{i}0{j}室")


    #执行结果

     ----------1层----------
     L1-101室
     L1-102室
     L1-103室
     L1-104室
     L1-105室
     ----------2层----------
     L2-201室
     L2-202室
     L2-203室
     L2-204室
     L2-205室
     ----------3层----------
     三层不通

    可以看到 break 到第三层小循环直接结束了进程。

    ——————————————————————————————————————————————

    新需求:跳过 404 ,继续走

    我们需要判断两个值,i 的层数为 4 ,j 的房间号也为 4 。

    break:

    for i in range(1,6):
        print(f"----------{i}层----------")
        if i == 3:
            print("三层不通")
            continue
        for j in range(1,6):
            if i == 4 and j == 4:
                print("遇到 404 房间,不吉利,跳过")
                break
            print(f"L{i}-{i}0{j}室")
    
    
    #执行结果
    ----------1层----------
    L1-101室
    L1-102室
    L1-103室
    L1-104室
    L1-105室
    ----------2层----------
    L2-201室
    L2-202室
    L2-203室
    L2-204室
    L2-205室
    ----------3层----------
    三层不通
    ----------4层----------
    L4-401室
    L4-402室
    L4-403室
    遇到 404 房间,不吉利,跳过
    ----------5层----------
    L5-501室
    L5-502室
    L5-503室
    L5-504室
    L5-505室

    continue:

    for i in range(1,6):
        print(f"----------{i}层----------")
        if i == 3:
            print("三层不通")
            continue
        for j in range(1,6):
            if i == 4 and j == 4:
                print("遇到 404 房间,不吉利,跳过")
                continue
            print(f"L{i}-{i}0{j}室")
    
    
    #执行结果
    ----------1层----------
    L1-101室
    L1-102室
    L1-103室
    L1-104室
    L1-105室
    ----------2层----------
    L2-201室
    L2-202室
    L2-203室
    L2-204室
    L2-205室
    ----------3层----------
    三层不通
    ----------4层----------
    L4-401室
    L4-402室
    L4-403室
    遇到 404 房间,不吉利,跳过
    L4-405室
    ----------5层----------
    L5-501室
    L5-502室
    L5-503室
    L5-504室
    L5-505室

    这里使用 continue 结束本次 404 小循环,继续下一个小循环 405

    break 到了 404 结束了本轮循环,进入下一层循环 

  • 相关阅读:
    Spring05_基于注解的IOC和DI
    Spring02_基于XML的IOC
    Spring01_概述及程序的耦合
    设计模式六、单例模式
    设计模式五,建造者模式
    前后端分离异常统一处理
    vue qs.stringify 和JSON.stringify 区别
    设计模式四、抽象工厂模式
    设计模式三、工厂方法模式
    设计模式二、简单工厂模式——静态工厂模式
  • 原文地址:https://www.cnblogs.com/shenyuanhaojie/p/15553837.html
Copyright © 2020-2023  润新知