Python中的嵌套WHILE循环

6 投票
1 回答
10377 浏览
提问于 2025-04-15 22:44

我刚开始学习Python,正在尝试写一些程序。我有一个类似下面的WHILE循环结构(不是完全一样)。

IDLE 2.6.4      
>>> a=0
>>> b=0
>>> while a < 4:
      a=a+1
      while b < 4:
         b=b+1
         print a, b

  
1 1
1 2
1 3
1 4

我希望外层循环能依次循环1、2、3和4。我知道我可以用FOR循环这样做。

>>> for a in range(1,5):
       for b in range(1,5):
           print a,b

  
1 1
1 2
.. ..
.. .. // Other lines omitted for brevity
4 4

但是,WHILE循环有什么问题呢?我觉得我可能漏掉了什么明显的东西,但就是搞不清楚。

回答: 这是修正后的WHILE循环……

>>> a=0
>>> while a < 4:
    a=a+1
    b=0
    while b<4:
        b=b+1
        print a,b

        
1 1
.. ..
.. .. // Other lines omitted for brevity
4 4

附注:我在StackOverflow上搜索了一下,发现了一些问题,但没有一个和这个很相似。我不知道这是否可以算作作业,实际的程序是不同的,困扰我的问题就是这个。

1 个回答

7

你没有在外层循环里面把 b 重置为 0,所以 b 保持着外层循环第一次运行后得到的值——4,这样内层循环就不会再执行了。

for 循环工作得很好,因为它们会正确地重置它们的循环控制变量;而 while 循环就比较随意,这种重置需要你自己来做,但你没有做到。

撰写回答