프로그래밍 언어/파이썬

파이썬 20. 반복문-while문

닉네임못짓는사람 2020. 11. 2. 07:23
반응형

저번 글에서는 파이썬에서 쓰는 반복문 중 하나인 for문에 대해 알아봤었는데,

이번 글에서는 다른 하나인 while문에 대해서 알아보도록 합시다.

 

while문


일단, while문의 기본적인 구조는 다음과 같습니다.

while 조건식:
    실행 코드1
    실행 코드2
    .
    .
    .

위와 같은 구조에서 조건식이 True일 경우 실행 코드를 계속해서 반복수행 하는 것이 while문 입니다.

실행 순서는 먼저 조건식을 검사한 후, 실행코드를 실행합니다.

그 후 반복할 때마다 계속해서 조건식을 검사하여 반복을 더 수행할지 종료할지 검사합니다.

 

그래서 for문같은 경우 일정한 횟수만큼 반복할 때 주로 사용하고,

while문의 경우 특정한 조건이 만족될 때 작업을 계속해서 수행해야할때 주로 사용합니다.

그럼 간단한 코드로 while문을 사용해보도록 합시다.

isExit = False
while not isExit:
    print("Hello World!")
    isExit = int(input("끝내시겠습니까?: "))

위 코드는 isExit이라는 boolean형 변수가 False일 경우 화면에 Hello World!를 출력하고,

사용자에게 isExit을 값을 입력받아 반복을 끝낼 것인지 정하는 코드입니다.

 

처음 isExit의 값은 False이기 때문에 화면에 Hello World!가 출력됩니다.

이후 사용자에게 끝내시겠습니까? 라는 문구와 함께 isExit의 값을 입력할 수 있게되는데,

이때 입력을 정수형으로 받으며 0은 False, 이외의 모든 숫자는 True로 인식됩니다.

위에서처럼 1을 입력하면 isExit을 입력하면, 다음 조건식 검사 때 isExit은 True이기 때문에 반복을 종료하게됩니다.

무한루프


이런 while문을 사용할 때 주의하고, 활용할 수 있는 점이 있는데, 바로 무한루프입니다.

무한루프란 반복문이 끝나지 않고 계속해서 반복되는것을 이야기합니다.

위에서 사용했던 isExit을 검사하는 코드도 사용자가 isExit의 값을 True로 바꾸지 않으면

계속해서 반복을 수행하기 때문에 무한루프라고 볼 수 있습니다.

a = 10
while a <= 10:
    print("hi")

예를 들어 위와 같은 코드를 실행시키면, a의 값은 10으로 고정이기 때문에

몇 번을 검사해도 조건식은 계속해서 True가 됩니다.

때문에 반복문을 계속해서 수행하는 무한루프가 되고, 프로그램을 강제 종료해야 이를 멈출 수 있습니다.

 

이 무한루프는 잘 사용하면 유용하게 사용할 수 있지만, 잘못 사용할 경우 위와 같이 프로그램이

그대로 진행이 안되는 결과를 초래할 수도 있기 때문에 사용할 때 주의하셔야 합니다.

반복문 제어 continue, break


다음으로 반복문을 제어하여 더 유동적으로 사용할 수 있게 해주는 continue와 break에 대해서 알아봅시다.

먼저, continue의 경우 반복문 내에서 이를 실행하면 해당 반복문의 다음 단계로 넘어가게 됩니다.

무슨 말인지 코드로 확인해봅시다.

for i in range(0, 10):
    print("Hello")
    continue
    print("World!")

위 코드는 원래 반복문을 사용해서 Hello World!를 10번 반복출력하는 코드입니다.

그런데 Hello와 World!사이에 continue를 넣고 실행시켰더니 Hello만 10번 출력되고 World!는 단 한번도 출력되지 않았습니다.

반복문이 10번 반복되는 과정에서 반복1에 continue를 사용했을 때

그 즉시 반복1을 종료하고 바로 반복2의 조건 검사로 넘어가는 것이 continue입니다.

 

다음으로 break에 대해서 알아봅시다.

break은 반복문 내에서 실행할 경우 그 즉시 반복문을 완전히 종료하게됩니다.

코드로 한 번 확인해봅시다.

for i in range(0, 10):
    print("Hello", end = " ")
    break;
    print("World!")

위의 continue코드에서 continue를 break으로 바꿧을 뿐인 코드입니다.

본래는 10번 반복해서 수행되었어야 할 반복문이 1번만 실행된 것을 볼 수 있습니다.

이렇듯 반복문을 종료하고 싶은 시점에서 바로 종료할 수 있도록 해주는 것이 break문입니다.

 

이번 글은 이 정도로 마치도록 하겠습니다.

감사합니다.

 

반응형

'프로그래밍 언어 > 파이썬' 카테고리의 다른 글

파이썬 22. 함수-2  (0) 2020.11.04
파이썬 21. 함수-1  (0) 2020.11.03
파이썬 19. 반복문-for문  (0) 2020.10.29
파이썬 18. if문-2  (0) 2020.10.27
파이썬 17. if문-1  (0) 2020.10.08