파이썬 기초

파이썬 기초 while 반복문 / break와 continue

코니코니 2022. 9. 30. 12:00
반응형

파이썬 기초 while 반복문 / break와 continue


for문과 마찬가지로 파이썬에서 많이 쓰이는 제어문으로 while문이 있습니다. for문의 경우에는 무한반복을 하기에는 조금 안맞는 감이 있지만 while문의 경우에는 어떤 코드를 계속해서 반복하기에 적합하다고 볼 수 있겠네요.

바로 사용 방법 예시를 보도록 하겠습니다.

while True:
    print('계속 나온다!')

==결과==
계속 나온다!
계속 나온다!
.
.
.

정말 계속 나옵니다. 이 반복문을 이해하려면 while 뒤의 True를 볼 필요가 있습니다.

while = 반복한다

True = 이것이 참일 때

라고 해석을 할 수 있겠네요. 말 그대로 while 뒤에 오는 어떤 값이 참일 때 계속해서 반복을 하는 것입니다. True라는 부울 값은 참 그대로 해석을 할 수 있기 때문에 당연히 무한적으로 반복을 하게 되는 것이죠.

마찬가지로 Ture 대신에 참에 해당이 되는 숫자나 문자열 등을 넣어줘도 반복문은 실행됩니다. 이러한 반복문을 종료하기 위해서는 두가지 방법이 있습니다.

while True:
    print('asd')
    break

==결과==
asd

위에 보이는 break 문을 넣어주는 것인데요. break에 도달을 했을 때 while 반복문을 강제로 종료하게 됩니다. 그렇기 때문에 asd를 출력하고 바로 다음에 break에 도달을 하고 반복문은 종료가 되는 것이죠.

a = 0
while a < 5:
    print(a)
    a += 1

==결과==
0
1
2
3
4

다음은 위와 같은 방식으로 반복문을 종료할 수 있습니다. while 뒤에는 조건을 넣을 수 있는데요. while문은 참일 동안만 반복문이 진행이 되기 때문에 만약 a라는 변수가 5와 동일하거나 5보다 크다면 a < 5 라는 조건은 거짓이 되기 때문에 종료가 되는 것이죠.

마지막 a += 1에서 a는 5가 되었고, 다시 반복문의 처음으로 돌아와 조건을 체크할 때 거짓인 것이 확인이 되어 종료가 되었기 때문에 마지막 출력은 4가 되는 것입니다.

a = 0
while not a > 5:
    print(a)
    a += 1

==결과==
0
1
2
3
4
5

위 코드는 기존 코드보다 살짝 헷갈릴 수 있겠지만 그대로 해석을 해본다면 그렇게 어렵지도 않습니다.

while = 반복한다

not = 아닐 때

결과적으로 while not a > 5 라는 것은 a라는 변수가 5보다 큰 것이 아닐 때 까지 반복문을 계속 사용한다는 것이 됩니다.

결과를 보면 알 수 있는데 a += 1을 통해서 a는 5까지 올라갑니다. 그리고 5를 출력한 다음 a += 1로 인하여 다시 반복문의 상단으로 돌아왔을 때 a는 6이 되었기 때문에 a라는 변수가 5보다 큰 것이 되어 반복문이 종료가 되는 것이죠.

지난번 for문과 마찬가지로 while문 또한 다양한 방법으로 코딩을 짤 수 있습니다. 필요에 따라서 while Ture와 break를 통해 반복문을 종료시킬 수도 있고 특정 조건을 넣어서 자연스럽게 break를 걸 수도 있다는 것!

마지막으로 continue를 쓰는 방법에 대해서 적어볼게요! 어렵지 않습니다.

a = 0
while True:
    a += 1
    print(a)
    if a < 5:
        continue
    break

==결과==
1
2
3
4
5

continue는 반복문의 처음으로 돌아오는 것을 말합니다. 위 코드에서 if문이 하나 들어가 있는데요. 해석을 해보면 만약 a보다 5가 크다면 반복문의 처음으로 돌아오겠다 라고 해석을 할 수 있겠죠.

그렇게 반복문의 제일 처음에서 a += 1 로 인하여 a라는 변수가 5가 될 때 까지 계속 continue에 의해서 돌아오다가 a라는 변수가 5가 되었을 때 if문은 거짓이 되기 때문에 다음 코드인 break에서 반복문은 멈추게 되는 것입니다.

이처럼 while문을 사용할 때 break와 continue를 적절히 잘 넣어주면 보다 깔끔한 코드를 작성할 수 있겠죠!

반응형