3.7 循环结构的跳转

一个例子

再来回顾一下本章3.4节举的一个例子。在作家的签名售书会上,作家需要对100本书进行签名,则作家应该怎么做?

一般来说,流程是这样的,作家从左手边拿起第一本书,然后签名,再然后将签完名的书放回右手边。接着继续拿起第二本书,重复上面的动作。

这是一个最基本的循环动作。

可我们考虑一下下面两种情况:

第一种情况:如果在签第40本书的时候,发现缺页了,导致无法售出。那作家应该怎么办?

第二种情况:如果在签第40本书的时候,发现签字笔没有水了,这个时候作家应该怎么办?

循环跳转

在上面的两种情况中,如果遇到第一种情况,那很明显,作家应该把正在签的第40本书放在一边,然后拿起第41本书继续签。

这是循环跳转的第一种情况。在Python语言中,跳出本轮循环,然后继续执行下一轮循环,使用的关键字是continue。

如果遇到第二种情况,如果签字笔没有水了,而这时候又没有其他的笔可以替代,那么后续的签售活动就必须全部停下来。在Python语言中,因为运行几次循环后而满足某个条件,必须将后续的循环工作全部跳过的情况,使用的关键字是break。

可以通过这张图来理解一下continue和break的区别。

模拟ATM循环取款操作

程序示例:编写程序接收用户输入卡号、密码,然后提示用户输入取款金额,如果取款金额不正确,则提示用户重新输入(最多允许输入3次)。重复以上流程100次。

for i in range(100):
    print("----------------- 欢迎使用**银行ATM机,您是第 ",i+1," 位客户 -----------------")
    card_no=input("请输入您的银行卡号:")
    password=input("请输入您的银行卡密码:")

    error_cnt=0
    while error_cnt<3: money=int(input("请输入您的取款金额:")) if money > 0 and money % 100 == 0:
            print("\n您本次的取款金额为",money," ,出钞中,请稍侯。。。")
            print("出钞完成,请取走您的银行卡和钞票。")
            break
        else:
            print("取款金额输入不正确,只能输入100的倍数!")
            error_cnt+=1

    if error_cnt >= 3:
        print("取款金额输入错误次数过多,退出重试!")
        continue

    print("操作结束,欢迎下次再来。\n")
【版权说明:仅允许非商业转载且请注明出处:Mac私塾 网址:http://macsishu.com】

发表评论

邮箱地址不会被公开。

Captcha Code