파이썬에서 지원하는 두 가지 반복문에 관한 내용을 알아보았다.
그렇다면, 정해진 반복의 흐름을 변형하는 방법을 알아볼 차례겠지???
Break문
다른 정적 프로그래밍 언어에서도 특정 조건이 발동했을 때,
반복 실행을 강제로 종료하고 루프의 밖으로 빠져나오는 명령어를 제공한다.
파이썬도 마찬가지로, 반복 실행 루프를 강제로 빠져나오는 명령어를 제공하는데,
어찌나 이름도 한결같은지, 다른 정적 프로그래밍 언어와 같은 이름인
Break를 사용한다.
위의 그림에서 볼 수 있듯이, Break문은 다른 추가적인 형식 없이 break 라는 이름 자체로 명령을 실행한다.
그리고, break 명령이 실행되는 즉시, 실행 위치에 가장 가까운 루프에서 탈출한다.
위의 예제 프로그램과 실행 결과를 통해 break의 동작을 살펴보면,
1에서 10까지 1씩 변화하는 값이 iIndex 변수에 할당되는 동안
변수 iSum에는 iIndex의 값이 계속 누적되는 연산을 실행한다.
그러던 중, iIndex 값이 5보다 큰 상황에서 4번 라인의 if문에 의해 break 명령을 실행되고,
for문에 정의된 반복이 완료되지 않았지만 반복의 루프에서 탈출하면서
바로 7번 라인의 print 명령이 실행되는 것이다.
(15 = 1 + 2 + 3 + 4 + 5)
break는 가장 가까운 범위의 반복 루프만 탈출한다.
위 예제 프로그램은 for문을 설명할 때 빠지지 않고 등장하는 구구단 프로그램으로,
iIndex01과 iIndex02라는 2개의 제어 변수에 각각 2에서 9까지의 값을 전달하는
2중 루프 구조로 구성된 프로그램이다.
먼저, 5번 라인에서 iIndex02의 값이 5를 초과하는지 검사하고, 조건이 참인 경우 break문이 실행된다.
6번 라인에서 실행된 break문은 iIndex02 변수에 의해 처리되는 내부 for 루프에서만 탈출하므로,
2단에서 5단까지의 출력 결과를 보면, 5 다음의 결과는 나타나지 않게 된다.
마찬가지로, 11번 라인의 조건 검사에 의해 실행되는 break로 인해,
iIndex01 변수에 의해 처리되는 외부 for 루프에서 탈출하면서,
5단 이후의 구구단은 더 이상 처리되지 않는다.
Continue문
반복문의 실행 순서를 변경하는 또 다른 명령문으로 Continue문이 있다.
반복문에 행사하는 영향력을 놓고 보자면,
Continue문도 Break문에 결코 뒤지지 않는다고 생각하지만,
반복의 실행을 건너뛰는 역할의 Continue문에 대해서는
루프에서 탈출하는 확실한 결과를 보여주는 break와 비교했을 때
조금 난해하게 바라보는 사람이 많은 것도 사실이다.
이 부분을 나름대로 해석해보자면,
Continue문이 활용되는 상황에 대한 이미지가 없어서 그렇지 않을까 생각하는데,
그 부분에 대해서는 스스로 생각해보기로 하고....
Continue문이 활용된 예를 살펴보면,
iIndex 변수의 값이 1에서 10까지 1씩 변화하는 동안 iSum 변수에 값을 누적하는 과정에서,
Continue문을 추가해줌으로써, iIndex가 홀수일 때는 값을 누적하지 않고 생략하는 결과를 보여주고 있다.
다시 말해, 4번 라인의 if문에서 iIndex를 2로 나눈 나머지가 0이 아닐 때 (즉, 홀수일 때)
5번 라인의 Continue문이 실행되면서,
반복 루프의 범위에 들어가는 6번 라인의 실행을 생략하고
바로 다음의 반복 차례로 넘어간다는 의미이다.
정리하자면, Break와 Continue는 위 그림과 같이 동작한다는 의미이다.
'Programming > Python' 카테고리의 다른 글
Python: Tuple (0) | 2021.01.01 |
---|---|
Python: List (0) | 2020.12.17 |
Python: WHILE문 (0) | 2020.12.10 |
Python: FOR문 (0) | 2020.12.09 |
Python: IF문 (0) | 2020.12.02 |