Python中关于while循环语句嵌套运行机制的个人理解(二)

  在(一)中,我们了解了Python中while循环语句嵌套用法的运行机制,但我们仅仅只是在每一层while循环条件均满足的情况去讨论,如果while循环嵌套语句中,某个while循环的条件不满足,或者循环到一定次数后条件不再满足循环的要求,这时候会发生什么事情呢?这就是我们接下来需要搞清楚的问题

  仍然是以跑环形圈的例子来讲解,要是一个person在跑双环形圈道的时候发现,小环形圈道路不通了(应该是被跳广场舞的大妈给占道了),那怎么办呢?

7cbb2720bae64e13a939c8ea1e13fae9.jpg

  答案是:直接跳过跑小环,抄近路,只跑大环道。

2914ad1055e14ca992ff1ec6318f1501.jpg

  于是,我们用跑圈的推理结果去类比,看下面的while循环嵌套的代码小例子。

9a5a072515474c15912aa57673b1fb2d.jpg

   可以发现,当我们运行程序时,外层while循环可以正常进行,print()语句输出AAAAA,a加1。

  再来看内层while循环,发现b=1不满足条件,也就是说,内层while循环不能进行,这时,我们用上面跑圈的例子类比推理的话,代码运行的结果应该是:

  内层while循环还没开始就已经结束,直接跳过内层while循环,回到外层while循环,a=2仍然满足循环条件,print()语句再次输出AAAAA,a加1,a=3,不满足外层while循环结束,外层while循环进行了两次,内层while循环进行了0次。

  让我们看看真实的代码运行结果:

52960c8e7d684ed09364cee375a7eca2.jpg

 结果与我们的推理一致。

 

  此时我们可能会想,上面的例子是一开始内层while循环的条件不满足,不能进行循环,那如果我们一开始就是最外层while循环的条件不满足,结果又会怎么样呢?

594e4a673ba44c4ba41534e14edf592f.jpg

  显然, person一开始就要跑的外环都被占了,内环没被占好像没什么用,还是跑不了。

  让我们用实际的代码运行来看看:

44af9448721e4480bea43bb667973596.jpg

 可以看到,一开始外层while循环的条件就不满足了,还有内层while循环的条件依然满足。

让我们来看看运行的结果:

55d8814de2c64cc38da492138ec08518.jpg

 可以发现啥都没有,也就是说,由于外层while循环不能进行,下面的内层while循环也就不能顺利进行,导致整个while循环嵌套代码没有循环。

以上均为两个while循环嵌套的代码运行结果,我们在再来看看三个while循环嵌套的代码运行结果如何:

b4937467b28646f28fa90e09b420ae43.jpg

1)首先是最外层while循环不满足条件,不能进行循环,其他均满足循环条件:

62876973bd224ac88ee5a89011887658.jpg

 05347917e7c04c6ab33fc0d59cb56e3c.jpg

   可以发现啥都没有,也就是说,由于外层while循环不能进行,下面的内层while循环也就不能顺利进行,导致整个while循环嵌套代码没有循环。

  (2)其次是中间层while循环不满足条件,不能进行循环,其他均满足循环条件:

50d44c0326574a8a8016564581d038fc.jpg

836cfa7f278845d499622e64158f9422.jpg   可以发现,最外层while循环可以进行,而中间层的while循环由于条件不满足不能进行,下面的最内层while循环也不能顺利进行。

(3)最后是层while循环不满足条件,不能进行循环,其他均满足循环条件:

5d9b215da5494ff899c6cae219092257.jpg

 641e436a5d7949b096b82e931c65827c.jpg

   可以发现,最外层和中间层的while循环可以进行,而最内层的while循环由于条件不满足不能进行。

由此我们会发现:

 while循环嵌套代码中,如果某一层while循环不满足条件了,该层循环,以及其以下的while循环将都不能循环,即使均满足循环条件。但该层以上的while循环仍然可以运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yuga...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值