Python 程序中,若是把一個循環放在另外一個循環體內,那麼就能夠造成循環嵌套。循環嵌套既能夠是 for 循環嵌套 while 循環,也能夠是 while 循環嵌套 for 循環,即各類類型的循環均可以做爲外層循環,各類類型的循環也均可以做爲內層循環。ide
當程序遇到循環嵌套時,若是外層循環的循環條件容許,則開始執行外層循環的循環體,而內層循環將被外層循環的循環體來執行(只是內層循環須要反覆執行本身的循環體而己)。只有當內層循環執行結束且外層循環的循環體也執行結束時,纔會經過判斷外層循環的循環條件,決定是否再次開始執行外層循環的循環體。code
根據上面分析,假設外層循環的循環次數爲 n 次,內層循環的循環次數爲 m 次,那麼內層循環的循環體實際上須要執行 n × m 次。循環嵌套的執行流程圖如圖 1 所示:
從圖 1 來看,循環嵌套就是把內層循環當成外層循環的循環休。只有內層循環的循環條件爲假時,纔會徹底跳出內層循環,才能夠結束外層循環的當次循環,開始下一次循環。blog
下面是一個循環嵌套的示例代碼:it
# 外層循環 for i in range(0, 5) : j = 0 # 內層循環 while j < 3 : print("i的值爲: %d , j的值爲: %d" % (i, j)) j += 1
運行上面程序,將看到以下運行結果:class
i的值爲: 0 , j的值爲: 0 i的值爲: 0 , j的值爲: 1 i的值爲: 0 , j的值爲: 2 ......
從上面的運行結果能夠看出,當進入嵌套循環時,循環變量 i 開始爲 0,這時即進入了外層循環。當進入外層循環後,內層循環把 i 當成一個普通變量,其值爲 0。在外層循環的當次循環中,內層循環就是一個普通循環。變量
實際上,嵌套循環不只能夠是兩層嵌套,還能夠是三層嵌套、四層嵌套……不論循環如何嵌套,均可以把內層循環當成外層循環的循環體來對待,區別只是這個循環體中包含了須要反覆執行的代碼。循環