2010-05-15 9 views
5

저는 파이썬으로 초보자이며 몇 가지 프로그램을 시도하고 있습니다. 다음과 같은 WHILE 루프 구문을 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 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 

처럼 FOR 루프를 사용하여이 작업을 수행 할 수 있지만, 알고, WHILE 잘못된 것입니다 고리? 나는 분명히 어떤 것을 놓치고있는 것 같지만 밖으로 만들 수 없었다.

않음 : 보정 된 WHILE 루프 ..

>>> a=0 
>>> b=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 

P.S : 검색된가 SO, few questions 그러나이 없음에 가깝게 알았다. 이것이 숙제로 분류 될 수 있는지, 실제 프로그램이 다른지, 문제가 무엇인지 모릅니다.

답변

7

b을 바깥 쪽 루프 안쪽으로 0으로 재설정하지 않으므로 b은 바깥 쪽 루프의 첫 번째 다리 뒤에있는 값으로 유지되며 안쪽 루프는 다시 실행되지 않습니다.

을 수행하면 루프가 정상적으로 작동합니다.은 루프 제어 변수를 올바르게 재설정합니다. 덜 구조화 된 while 루프를 사용하면 이러한 재설정 작업은 손에 맡기고 수행하지는 않습니다.