본문 바로가기
Python/Python Basic

12. Python - 반복문 제어. pass, break와 continue 문,

by Rosmary 2019. 8. 31.
728x90
반응형

 

 

지난 포스팅에서, 반복문 안에 조건문을 작성하여 특정 조건과 일치하는 결과만 제외하는 프로그래밍을 만들어보았다. 조건문을 반복문 안에 사용함으로써, 구구단 2단 중 2x5와 2x7을 제외한 결과를 출력할 수 있다. 여러 방법이 있지만, 필자는 다음과 같은 방법을 사용해서 문제를 해결했다.

 

===================================

dan = 2

n = 1

condition = (n==5 or n==7)

 

while (n < 10) :

   if( condition ) :

       print("")                                                   

   else:

       print("{} x {} = {}".format(dan, n, dan * 2)

   n = n+1

===================================

 

지금까지의 Python 포스팅 내용만 참조하여 코드를 만들면, 위의 코드가 가장 간결하게 만들어진 코드다. 그런데, 이 코드의 출력된 결과는 모양이 예쁘지 않다. 2x5와 2x7은 print("") 문장이 실행되면서, 공백 한 줄이 추가된다. 필자가 한 줄을 없애기 위해, if 문장 아래의 print("")를 제거하고 코드를 작성하면, 에러가 발생한다. 왜냐하면, 반복문이나 조건문처럼 콜론(:)으로 마무리되는 문장은, 반드시 들여쓰기가 포함된 하위 코드가 작성되어야하기 때문이다. 

 

 

그럼, 조건과 일치할 때, 아무것도 수행하지 않고 넘어갈 수 있는 방법은 없을까? 혹은 조건과 만족할 때, 반복문을 중지할 수 있는 방법은 없는 것일까? 이 때 사용할 수 있는 Python의 예약어가 바로 pass, continue, 그리고 break이다.

 

 

 

(1) pass, continue

 

pass는 말 그대로, 통과한다라는 의미다. 즉, 조건문과 반복문의 조건과 일치할 때, 실행시킬 코드가 없을 때, pass를 입력하면, 특별한 작업 수행없이 조건문과 반복문을 지날 수 있다. 아래의 예를 보자.

 

 

if 조건은 "n이 5 또는 7이라면" 이다. 이 조건을 만족하면 pass라는 코드를 수행하게 되는데, 이 코드는 아무런 작업도 수행하지 않는 맹탕코드다. 따라서 아래에 출력되는 결과에는, 2x5와 2x7이 나타나지 않는다. 크게 어려운 내용은 아니다.

 

pass 외에 사용할 수 있는 예약어는 continue가 있다. 조건문과 반복문에서 동시에 사용 가능한 pass와 달리, continue는 반복문 내에서만 사용이 가능한데, 이 continue문은 조건과 일치하는 상황이 발생하면, continue 이후의 for 문 코드는 전부 무시한 채, 다음 반복을 진행한다.

 

 

위의 코드는 continue를 이용해, 1부터 10 사이의 홀수만 출력하도록 만든 프로그램이다. 반복이 시작될 때, n 값이 1씩 증가하며, if 조건에서 2로 나눈 나머지가 짝수인 경우에는, 이후의 코드를 전부 무시하는 continue 문을 만나, print(n) 작업 없이 다음 반복을 진행한다. 위의 구구단 2단 출력 예제에서도, pass 대신 continue를 입력하면 동일한 결과가 나타난다. 

 

if 조건문 이후 else문을 생략하더라도, 같은 결과가 나온다

 

while 반복문 내에서 continue 문을 사용할 때, 주의해야할 점은, 조건을 변화시키는 연산(n = n + 1)이, continue 이후에 선언이 되면 안 된다는 것이다. 만약, 위의 코드에서도, n = n + 1이 continue 문의 뒤에 위치한다면, n값은 항상 0으로 고정되어 반복문을 빠져나오지 못하게 된다.

 

 

(2) break

 

break는 반복문 내에서 반복을 중지시킬 때 사용하는 단어다. pass나 continue와 마찬가지로, 특정 조건과 함께 사용하는 경우가 많다. 다음의 코드를 보자.

 

 

for 문과 print(n)만 고려한다면, 위의 코드는 1부터 9까지의 값을 순서대로 출력하는 프로그램이다. 이 코드에 n값이 7일 때, break 문을 수행하도록 코드를 추가한다면, 7이후의 숫자는 출력되지 않고 프로그램이 종료된다. 정리하자면, continue 문은, for 문에서 설정한 조건을 만족하는 상태에서, 반복문을 강제로 벗어나고자 할 때 주로 사용한다.

 

 

 

FIN.

반응형

댓글