if문은 조건을 판단하여 '참' '거짓'에 따라 실행하는 명령문이 달랐다. while은 반복문 중의 하나인데, 반복문은 조건 판단, 문장 실행을 반복한다. 조건이 '참'이면 계속 실행을 하고, '거짓'이 되면 반복문을 빠져나온다.

 

1. while문 구조

a = 0

while a<5:
    print(a)
    a=a+1 # a가 1씩 증가

1

2

3

4

처음에 a=0이므로 조건은 '참'이 된다. 따라서 0이 출력되고 a가 1로 변한다. 여전히 a는 5보다 작으므로 조건은 '참'이 되고 1을 출력하고 a가 2로 변한다. 이렇게 반복하다가 a가 4까지 출력되고 5로 변하면 조건은 거짓이 되어 while문을 빠져나온다.

 

 

 

2. break : while문 강제 탈출


반복문을 강제 탈출하고 싶을때가 있을 것이다. 이 때에 사용하는 것이 break 명령어이다.

money = 1000
price = 150
while money:
    money = money - 150
    print("%d won"%-price)
    print("%d won is remained"%money)
    if money>price:
        pass
    else:
        break

잔고 1000원이 있는데, 주기적으로 150원 씩 출금해간다. 그런데 돈이 150원 보다 적게 남으면 출금할 수 없게되어 "통장에 돈을 채워라" 라는 문자열을 출력하고 while문을 탈출하게 된다. 좀 억지스러운 면이 있지만 break의 사용법을 알기엔 충분하다. 참고로 반복문이 여러 개 중첩되어있는 경우 break 명령어가 포함된 가장 안쪽의, 혹은 하위의 반복문을 빠져나가게 된다.

위 반복문의 결과는 다음과 같다.

-150 won

850 won is remained

-150 won

700 won is remained

-150 won

550 won is remained

-150 won

400 won is remained

-150 won

250 won is remained

-150 won

100 won is remained

 

 

3. 처음으로 돌아가기 : continue


continue문은 아래의 나머지 문장을 실행하지 않고 while문 조건을 판단하는 처음으로 돌아가서 다시 계속 실행하게 하는 명령어이다.

a=0

while a<10:
    a=a+1
    if a%2==0:
        continue

    print(a)

위 코드는 10보다 작은 홀수를 출력하는 프로그램이다. if 문에서 a%2 는 a를 2로 나눈 나머지인데, 2로 나누어 나머지가 0이란 것은 짝수란 말이다. 따라서 출력을 하지않고 다시 처음으로 돌아간다.

 

 

4. 무한루프


while 1:
    print("Press 'Ctrl + C' to exit")

while문의 조건이 1이다. 항상 참이란 말이다. 따라서 위의 문장은 계속해서 무한정 출력될 것이다. 무한 루프를 탈출하려면 Ctrl + C 를 입력하면 된다.

+ Recent posts