不能理解下面代码中的第二个while循环


def summer_of69(arr):
total =0
add = True
for num in arr:
while add:
if num!= 6:
total+=num
break
else:
add = False
while not add:
if num!=9:
break
else:
add= True 
break
return total

在这段代码中,如果我传递summer_of69([2,5,6,9,11]),为什么9会被忽略而11会被添加?

我得到的输出18是正确的,但我想知道第二次while循环在这里是如何工作的。

6之后的9和11是如何工作的?

为了理解任何复杂的循环系统是如何工作的,你只需要一步一步地浏览代码,并像计算机那样计算逻辑。

num变成6时,想想当它通过两个while循环时会发生什么。

第一个while循环没有将6添加到total,而是将变量add转换为False

由于add现在是False,第二个while循环触发,但随后立即中断。

现在num9,因为addFalse,所以第一个while循环不执行。

代替第二个,add变成了True

最后,现在addTrue,当num11时,执行第一个while循环,将11添加到总数中,而第二个while循环不执行。

你只需要花点时间在脑子里把它想清楚,如果它变得太复杂了,在你的脑子里做不出来,网上有很多可视化执行程序可以帮你完成。

相关内容

  • 没有找到相关文章

最新更新