zoukankan      html  css  js  c++  java
  • 判断语句和循环语句2.13 break和continue

    一、引入

    在循环的过程中,有时可能会因为某些条件的满足或者不满足需要结束整个while,还有可能在当次循环代码执行过程中剩下的不执行了而是进行一次的循环,这种时候就需要用2个功能

    • 结束整个循环
    • 结束本次循环

    还好,Python的发明人,针对上述2个功能,发明除了对应的代码

    • break,用来结束整个循环
    • continue,用来结束本次循环

    二、break基本使用

    break的作用是:结束它所属的整个循环

    注意点:它不能单独使用,如果用的话一定需要放到循环中

    1. while中使用break

    未使用break的效果

    i = 0
    
    while i<5:
        print('----')
        print(i)
        i = i+1
    

      

    运行结果:

    ----
    0
    ----
    1
    ----
    2
    ----
    3
    ----
    4
    

      

    使用break的效果

    i = 0
    
    while i<5:
        print('----')
        i = i+1
        break
        print(i)
    

      

    运行结果:

    ----
    

      

    说明:

    • 当程序执行到第6行时,遇到了break,那么此时break就会将它所在的while循环结束,所以只输出了一次----

    2. for中使用break

    未使用break的效果

    web_site = 'codetutor.top'
    
    for x in web_site:
        print(x)
    

      

    运行结果:

    c
    o
    d
    e
    t
    u
    t
    o
    r
    .
    t
    o
    p
    

      

    使用break的效果

    web_site = 'codetutor.top'
    
    for x in web_site:
        print(x)
        break
    

      

    运行结果:

    c
    

      

    说明:

    • 当程序执行到第5行break时,break会让整个for循环结束,所以只输出了第一个字母c

    三、continue的基本使用

    1. while中使用continue

    使用continue的效果

    i = 0
    while i<3:
        i = i+1
        print('----')
        continue
        print(i)
    

      

    运行结果:

    ----
    ----
    ----
    

      

    说明:

    image-20200828095224045

    步骤2执行时i为0,条件满足,执行步骤3、4、5,当步骤5执行完后会直接进入到步骤6,而不是执行print(i)

    步骤6执行时i为1,条件满足,执行步骤7、8、9,当步骤9执行完后会直接进入到步骤10,而不是执行print(i)

    步骤10执行时i为2,条件满足,执行步骤11、12、13,当步骤13执行完后会直接进入到步骤14,而不是执行print(i)

    步骤14执行时i为3,条件不满足,所以while循环正常结束了

    2. for循环

    • 带有continue的循环示例如下:
    web_site = 'codetutor.top'
    
    for x in web_site:
        print(x)
        continue
        print("----")
    

      

    运行结果:

    c
    o
    d
    e
    t
    u
    t
    o
    r
    .
    t
    o
    p
    

      

    说明:

    • 当程序遇到continue时,会导致本次for循环体中剩下的代码不会执行,而是进入下一次的循环

    四、常见的用法

    通过上面的案例,我们知道break、continue是可以直接放到循环中使用的

    但是,在循环中直接运行break、continue有意义吗?其实你也会感觉到有些不舒服,我们一般的用法是在判断语句中使用break、continue

    示例如下:

    i = 3
    while i > 0:
        password = input("请输入密码:(还剩%d次机会)" % i)
        if password == "123456":
            print("密码输入正确")
            break
        i -= 1
    

      

    说明:

    • 如果密码输入正确,那么就不需要再次让用户输入密码,直接介绍这个循环即可
    • 一般情况下break、continue会在判断中使用,这样就能够实现该怎样循环的就怎样循环,不该循环的时候能立刻结束

    五、在循环嵌套中使用

    阅读如下代码,思考最终会输出什么?

    i = 0
    while i < 3:
        print("i=%d" % i)
        i += 1
        j = 0
        while j < 3:
            print("---")
            j += 1
            break
    

      

    最终的输出结果是

    i=0
    ---
    i=1
    ---
    i=2
    ---
    

      

    说明什么道理呢?

    答:

    image-20200828103224100

    想一想:下图中的break是对哪个起作用?

    image-20200828103500323

    答:第1个break对外层循环起作用,第2个break对内层循环起作用。

    注意:

    continue在循环嵌套中的作用于break几乎一样,只不过它是结束本次循环,而break是结束整个循环

    切记口诀:break、continue在哪个循环中就对哪个循环起作用

    六、break、continue使用总结

    • breakcontinue只能用在循环中,除此以外不能单独使用
    • breakcontinue在嵌套循环中,只对最近的一层循环起作用

    • break能够立刻结束所在的循环

    • continue的用来结束本次循环,紧接着执行下一次的循环
    • 无论break放到while循环体中的任何位置,只要被执行一次,那么整个循环立刻结束
  • 相关阅读:
    管理员必备的Linux系统监控工具
    kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
    RedHat linux配置yum本地资源
    RedHat Linux RHEL6配置本地YUM源
    c语言中的fgets函数
    sprintf()函数的用法
    spring boot整合JWT例子
    spring boot 自定义过滤器链
    (转)ArrayList和LinkedList的几种循环遍历方式及性能对比分析
    (转)Springboot 中filter 注入对象
  • 原文地址:https://www.cnblogs.com/dong4716138/p/15661791.html
Copyright © 2011-2022 走看看