21. 循环结构之break

  在第20节中,遇到的是循环次数已知的情形,而现实中有些循环结构事先无法确认循环次数,如电脑的开机密码,直到输入正确密码,方可进入操作界面。

PASSWORD = "123456"
while True:
    password = input("请输入密码:")
    if password == PASSWORD:
        print("密码正确!")
    else:
        print("密码错误,请重新输入!")

  上面的代码,会无休止地让用户输入密码,并告诉用户所输入的密码是否正确。但这样显然不符合正常操作流程,用户输错密码,应该重新输入;输入密码如果正确,就应该结束循环。而上面的例子是一个死循环,程序自己无法结束。可以通过点击Pycharm中Run下面的红色方按钮,结束死循环。
  针对这种情况,可以对代码进行如下修改。

PASSWORD = "123456"
isWrong = True
while isWrong:
    password = input("请输入密码:")
    if password == PASSWORD:
        print("密码正确!")
        isWrong = False
    else:
        print("密码错误,请重新输入!")

  上面的例子中,通过增加了isWrong这个布尔变量,一旦密码输入正确,将其值改为False,循环就结束了。
  其实,还有更简单的方法,不用增加新的控制变量,就能结束死循环,这就是break

PASSWORD = "123456"
while True:
    password = input("请输入密码:")
    if password == PASSWORD:
        print("密码正确!")
        break  # 结束循环
    else:
        print("密码错误,请重新输入!")

  如果密码输入正确,则执行break,可以立即结束循环,干净利落。
  下面,模拟一下有限制输入次数的情形,如果密码输错5次,就没有机会了。

PASSWORD = "123456"
count = 0
while True:
    password = input("请输入密码:")
    if password == PASSWORD:
        print("密码正确!")
        break  # 结束循环
    else:
        count += 1
        if count < 5:
            print("密码错误,请重新输入!")
        else:
            print("连续5次密码输入错误,屏幕锁死!")
            break  # 结束循环

  最后,需要提醒一下,break只能结束一层循环,也就是如果循环嵌套,最里层循环结构中执行break后,会进入上一层循环结构,以后的章节中会遇到。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值