본문 바로가기

파이썬

05/04 파이썬 10 - while, break, continue

1) while

 

파이썬에는 for문 말고도 반복문을 작성할 수 있는 while 문이 있다.

 

동일하게 반복문을 작성할 수 있다면 왜 굳이 2개의 키워드가 있을까? 일반적으로 for 문은 반복의 횟수가 정해져 있거나 리스트, 튜플, 딕셔너리와 같은 자료구조와 같이 사용된다.

 

반면 while 문은 반복 횟수가 정해져 있지 않고 어떠한 조건을 충족하는 동안에만 실행된다.

 

>>>i = 0
>>>while i <= 10:
	print(i)
	i = i + 1
    
0
1
2
3
4
5
6
7
8
9
10
>>>

 

위 코드는 while 문을 사용하여 0부터 10까지의 숫자를 화면에 출력하는 프로그램을 만든 모습이다.

 

while 문에는 조건문이 있는데, 그것이 위 코드 중 " i <= 10: "이다. 이 조건을 충족하면 들여 쓰기 된 문장이 순서대로 실행된다.

 

위 코드에서 변수 i는 초기값으로 0을 바인딩하고 있으므로 조건문을 만족하여 0이 화면에 출력되었고 i의 값은 1로 바뀌었다. 이 과정이 "i <= 10"을 충족할 때까지 반복되고 i = 11이 되었을 때 조건문을 만족하지 않아 while 문에서 빠져나오게 된다.

 

2) while과 if

 

while 문과 if 문은 자주 함께 사용되는데, 그것은 반복적인 작업을 할 때 특정 조건에서 다르게 처리하고자 하는 경우 if 문과 while 문을 함께 사용한다.

 

0부터 10까지의 숫자 중 홀수만을 출력하는 프로그램을 만들어보자.

 

>>>i = 0
>>>while i <= 10:
	if i % 2 == 1:
		print(i)
	i += 1
    
    
1
3
5
7
9
>>>

 

홀수의 특징은 2로 나누었을 때 나머지가 1이라는 것이다. 이 특징을 이용하여 조건식을 만들면 if 문으로 0부터 10까지의 숫자 중 홀수에 해당하는 수를 골라내는 작업을 할 수 있다.

 "변수 i를 2로 나누었을 때 1이다."을 코드로 나타내 보면 "i % 2 == 1"이라고 할 수 있다.

이 코드를 if 문에 적용하여 홀수만 골라내는 조건문을 만들 수 있다.

 

3) break와 continue

 

0부터 10까지의 숫자를 출력하는 프로그램을 break를 사용하여 만들어 보자.

 

>>> i = 0
>>> while True:
	print(i)
	if i == 10:
		break
	i += 1

	
0
1
2
3
4
5
6
7
8
9
10

 

위 코드에서 while의 조건문이 True이기 때문에 이 곳만을 보면 while 문은 무한으로 반복될 것이다.

위 코드를 자세히 보면 if 문으로 i == 10일 때 break라는 키워드가 실행되게 되어있는데, 이 break라는 키워드는 반복문 전체를 빠져나오게 하는 기능이 있다.

때문에 i ==10일 때 break를 통해 while 문은 종료된다. 그 결과물로 0부터 10까지의 수가 화면에 출력되었다.

 

 

다음은 1부터 10까지의 숫자를 화면에 출력하되, 숫자 7은 출력이 안되도록 하는 프로그램을 만들어보자.

 

>>> i = 0
>>> while i < 10:
	i += 1
	if i == 7:
		continue
	print(i)

	
1
2
3
4
5
6
8
9
10
>>> 

 

위 코드를 분석해보면 i의 값이 10보다 작을 때, i의 값을 1만큼 증가시키고 i의 값이 7이면 continue라는 키워드가 실행되고 i가 화면에 출력된다.

여기서 continue라는 키워드의 기능은 continue 아래의 코드들을 실행시키지 않고 바로 while 문의 조건식으로 점프하게 할 수 있다는 것이다.

 

따라서 위 프로그램은 i의 값이 7일 때 continue를 만남으로써 continue 아래의 코드인 print(i)가 실행되지 않고 다시 while 문의 조건식으로 건너뛰게 되는 것이다.