14. Break、Continue
Pausa e continuação
备注:在2:03处下方的第四行应该修改为
adding mattresses(34)
.
Break、Continue
有时候我们需要更精准地控制何时循环应该结束,或者跳过某个迭代。在这些情况下,我们使用关键字
break
和
continue
,这两个关键字可以用于
for
和
while
循环。
-
break
使循环终止 -
continue
跳过循环的一次迭代
请观看视频并尝试下面的示例,看看这两个关键字的作用。
尝试一下!
你将在下面找到解决视频中的货物装载问题的两个方法。第一个方法是视频中提到的方法,当重量达到上限时,终止循环。但是,我们发现该方法存在多个问题。第二个方法通过修改条件语句并添加
continue
解决了这些问题。请运行下面的代码,看看结果如何,你可以随意实验该代码!
Start Quiz:
manifest = [("bananas", 15), ("mattresses", 24), ("dog kennels", 42), ("machine", 120), ("cheeses", 5)]
# the code breaks the loop when weight exceeds or reaches the limit
print("METHOD 1")
weight = 0
items = []
for cargo_name, cargo_weight in manifest:
print("current weight: {}".format(weight))
if weight >= 100:
print(" breaking loop now!")
break
else:
print(" adding {} ({})".format(cargo_name, cargo_weight))
items.append(cargo_name)
weight += cargo_weight
print("\nFinal Weight: {}".format(weight))
print("Final Items: {}".format(items))
# skips an iteration when adding an item would exceed the limit
# breaks the loop if weight is exactly the value of the limit
print("\nMETHOD 2")
weight = 0
items = []
for cargo_name, cargo_weight in manifest:
print("current weight: {}".format(weight))
if weight >= 100:
print(" breaking from the loop now!")
break
elif weight + cargo_weight > 100:
print(" skipping {} ({})".format(cargo_name, cargo_weight))
continue
else:
print(" adding {} ({})".format(cargo_name, cargo_weight))
items.append(cargo_name)
weight += cargo_weight
print("\nFinal Weight: {}".format(weight))
print("Final Items: {}".format(items))