像break语句一样,continue语句用于循环内部。如果程序执行遇到continue语句,就会马上跳回到循环开始处,重新对循环条件求值(这也是执行到达循环末尾时发生的事情)。
让我们用continue写一个程序,要求输入名字和口令。在一个新的文件编辑窗口中输入以下代码,将程序保存为swordfish.py。
while True:
print('Who are you?') name = input()
➊ if name != 'Joe':
➋ continue
print('Hello, Joe. What is the password? (It is a fish.)')
➌ password = input()
if password == 'swordfish':
➍ break
➎ print('Access granted.')
如果用户输入的名字不是 Joe➊,continue 语句➋将导致程序执行跳回到循环开始处。再次对条件求值时,执行总是进入循环,因为条件就是
True。如果执行通过了 if 语句,用户就被要求输入口令➌。如果输入的口令是 swordfish,break 语句运行➍,执行跳出 while
循环,打印 Access granted➎。否则,执行继续到 while 循环的末尾,又跳回到循环的开始。这个程序的流程图参见图 2-13。
运行这个程序,提供一些输入。只有你声称是 Joe,它才会要求输入口令。一
旦输入了正确的口令,它就会退出。
Who are you?
I'm fine, thanks. Who are you?
Who are you?
Joe
Hello, Joe. What is the password? (It is a fish.)
Mary
Who are you?
Joe
Hello, Joe. What is the password? (It is a fish.)
swordfish
Access granted.