逍遥友 2019-12-23
当程序遇到循环嵌套时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行(只是内层循环需要反复执行自己的循环体而己)。只有当内层循环执行结束且外层循环的循环体也执行结束时,才会通过判断外层循环的循环条件,决定是否再次开始执行外层循环的循环体。
根据上面分析,假设外层循环的循环次数为 n 次,内层循环的循环次数为 m 次,那么内层循环的循环体实际上需要执行 n × m 次。循环嵌套的执行流程图如图 1 所示:
从图 1 来看,循环嵌套就是把内层循环当成外层循环的循环休。只有内层循环的循环条件为假时,才会完全跳出内层循环,才可以结束外层循环的当次循环,开始下一次循环。
下面是一个循环嵌套的示例代码:
# 外层循环 for i in range(0, 5) : j = 0 # 内层循环 while j < 3 : print("i的值为: %d , j的值为: %d" % (i, j)) j += 1
运行上面程序,将看到如下运行结果:
i的值为: 0 , j的值为: 0 i的值为: 0 , j的值为: 1 i的值为: 0 , j的值为: 2 ......
从上面的运行结果可以看出,当进入嵌套循环时,循环变量 i 开始为 0,这时即进入了外层循环。当进入外层循环后,内层循环把 i 当成一个普通变量,其值为 0。在外层循环的当次循环中,内层循环就是一个普通循环。
实际上,嵌套循环不仅可以是两层嵌套,还可以是三层嵌套、四层嵌套……不论循环如何嵌套,都可以把内层循环当成外层循环的循环体来对待,区别只是这个循环体中包含了需要反复执行的代码。