在Python中,while循环语句嵌套基本格式如下:
以2个while循环语句嵌套为例。
看图说话:
我们可以把一个while循环(满足循环条件)的过程看成:
一个person绕着固定的环型圈道完整地run一趟,这个环叫while①
我们可以把两个while循环(均满足循环条件)的过程看成:
一个person绕着固定的双环(大环包小环)型圈道完整地run一趟,小环叫while②
可以看出,person想要run完大环while①,首先就得跑完小环while②,然后才能继续跑完大环while①
也就是说,Python中,要想完成外层while循环,内层while循环就得先完成,然后才能继续外层while循环。
我们再看看小面一个Python的while循环嵌套的小例子:
分析:用我们上面跑圈的原理去推理代码运行的结果。
图中,我们定义了两个变量a和b,下面进入第一个外层while循环,满足其循环的条件是a≤2,因为我们一开始的a=1满足,所以外层while里的print()语句会输出AAAAA,然后变量a 会加上1,此时a=2,仍然满足循环条件。
But,外层while先别着急循环,就像run 双环圈型圈道一样,你想把大环run完,那你就得先把小环run完。
与之相似,我们先看内层while循环,内层while循环的条件是b ≤ 5,因为我们一开始的b=1满足条件,随之内层while循环里print()语句会输出B,然后b加1,b=2,仍然满足条件,还得循环,内层while循环一共进行5次,print()语句输出了5个B,第五次之后b=6,不满足条件了,循环结束。
然后又回到外层循环,由于a=2满足条件,所以外层while里的print()语句会输出AAAAA,然后变量a 会加上1,此时a=3,不满足循环条件,就此所有循环结束。
下面我们来看看结果是怎么样的:
可以看出结果与我们的推理一致。
以此类推,我们看看while三循环嵌套的运行是否符合上面的推理运行机制:
根据前面得出的运行机制,我们可以推测上图的运行结果应该为:
首先,最外层while循环满足条件, print()语句输出AAAAA, a加1,此时a=2,进入中间层while循环,满足条件,print()语句输出BBB, b加1,此时b=2,进入最内层while循环,满足条件,print()语句输出C, c加1,此时c=2,满足条件,最内层while循环继续进行,一共循环四次,输出四个C,最内层while循环结束。
然后又返回到中间层while循环,由于此时b=2满足循环条件,print()语句输出BBB, b加1,此时b=3,又满足循环条件,print()语句输出BBB,,b加1,此时b=4,不满足条件,中间层while循环结束。
然后返回最外层while循环,由于此时a=2满足循环条件,print()语句输出AAAAA, a加1,此时a=3不满足条件,最外层while循环结束。
分析结束,让我们来看看最终结果:
使用while循环语句嵌套,永远都是最内层的循环结束以后,再依次轮到上一层while循环进行,循环结束后又轮到上上一层,以此类推,直至所以循环结束。