╱╱╭╮╱╱╱╱╱╱╭━━━╮╱╱╱╭╮╱╭╮╱╱╱╱╱╱ ╱╱┃┃╱╱╱╱╱╱┃╭━╮┃╱╱╱┃┃╱┃┃╱╱╱╱╱╱ ╱╱┃┣━━┳━━╮┃┃╱┃┣━╮╱┃╰━╯┣━━┳━╮╱ ╭╮┃┃╭╮┃┃━┫┃╰━╯┃╭╮╮┃╭━╮┃╭╮┃╭╮╮ ┃╰╯┃╭╮┃┃━┫┃╭━╮┃┃┃┃┃┃╱┃┃╭╮┃┃┃┃ ╰━━┻╯╰┻━━╯╰╯╱╰┻╯╰╯╰╯╱╰┻╯╰┻╯╰╯

Python/Python 기초

[Python] 반복문(while)

재안안 2022. 3. 2. 16:38

우선 간단히 말하자면 반복문이란 코드를 반복시키는 기능이다.

반복문을 사용하면 원하는 코드들을 원하는 만큼 반복 시킬 수 있다.

반복문에서 조건을 지정하는데 이 조건이 이면 반복한다.

같은 코드를 여러번 쓰지 않아도 되니 많이 편리하다.

 

아래에서 while의 사용 형식을 설명하겠다.

https://docs.python.org/3.9/reference/compound_stmts.html#while

while은 키워드

assignment_expression은 반복조건

: 은 반복문의 범위 지정

suite는 실행코드들을 뜻한다.

 

while 사용 예제, 실행결과

 

여기서 i<x가 반복조건이고 :와 들여쓰기를 이용해 while문의 범위를 지정했다.

x, i선언후 while문이 실행되는데 이때 반복문 내에 있는 print(i)와 i+=1이 반복된다.

반복은 아래와 같이 진행된다.

 

while 반복 진행도

 

while의 범위 안에 있는 코드 실행후 반복하기 전에 반복조건을 검토한다.

 

while 사용 예제2, 실행결과

while문 사용시 반복조건을 항상 염두해 두어야한다.

만약  i+=1이 없었다면

i는 초깃값 0을 가지고 있어 반복조건이 항상 성립하게되 무한으로 반복한다.

이때 프로그램을 실행시키면 프로그램은 콘솔창에 0을 무한으로 출력한다. 

이처럼 원치않는 결과를 피하기 위해서는 반복조건을 잘 지정해 활용해야 사용자가 원하는 결과를 도출할 수 있다.

 

 

추가적으로 while문에서 사용할 수 있는 2가지 메소드들이 있다.

 

break : 반복문 강제 탈출

continue : 반복문의 나머지 코드를 건너뛰고 새로운 반복을 시작

 

아래의 예제들을 통해 설명하겠다.

break 사용 예제

위의 예제와 같이 0~5까지 출력하는 프로그램에서 break문을 추가했다.

프로그램의 진행은 아래와 같다.

 

i가 0일 때, 반복조건 확인 -> 0출력 -> i+1 -> if문 검토

i가 1일 때, 반복조건 확인 -> 1출력 -> i+1 -> if문 검토

. . .

i가 3일 때, 반복조건 확인 -> 3출력 -> i+1 -> if문 검토

 

이처럼 반복조건이 성립해도 break문 실행시 반복문을 탈출한다. 그래서 강제탈출이다.

여담으로 출력이나 값올림 어떤 코드가 먼저 실행되는지에 따라서도 결과가 달라지니 이점도 유의해야한다.

 

코드 순서의 중요성

 

 

다음은 continue에 대해 알아보겠다.

 

continue 사용 예제

오른쪽의 실행결과를 보면 아래와 같이 알 수 있다.

 

i가 1일때 8,9번 줄 모두 정상적으로 실행되었다. 그리고 반복문의 조건식 확인으로 돌아간다.

i가 2일때 if문의 continue가 실행되어 아래의 부분들을 무시하고 반복문의 조건식 확인으로 돌아갔다.

i가 3일때 8,9번 줄 모두 실행되고 다시 조건식으로 돌아가는데 반복조건이 False라 반복문에서 빠져나온다.

 

 

그리고 while에도 else를 붙일 수가 있다. 

https://docs.python.org/3.9/reference/simple_stmts.html#continue

아래의 예제로 확인해보겠다.

 

while~else 사용 예제

while문을 탈출할 때까지 만약 break문이 실행되지 않았다면 else를 실행시킨다.

 

프로그램은 0보다 큰 정수를 입력하라고 했지만 반복횟수를 5번으로 제한했다.

아래의 실행 결과를 통해 알아보겠다.

 

3,2 6 입력 실행 결과

 

여기서 주목할 부분은 else의 실행 유무이다.

 

만약 break의 실행으로 반복문을 탈출했다면 else는 실행되지 않고

break 실행 없이 반복조건 미성립으로 반복문을 탈출했다면 else가 실행된다.