더북(TheBook)

icon_solution 알아 보기

이전에 for 명령어를 사용해서 만든 1부터 10까지 합계 구하기 프로그램(05C-sum.py)과 오늘 while 명령어를 사용해서 만든 프로그램을 비교해 볼까요?

 

for 명령어를 사용했을 때

while 명령어를 사용했을 때

s = 0

for x in range(1, 11):

s = s + x

print("x:", x, "sum:", s)

s = 0

x = 1

while x <= 10:

s = s + x

print("x:", x, "sum:", s)

x = x + 1

 

두 프로그램 모두 합계를 저장하는 변수 s0으로 설정했고, 필요한 만큼 반복하여 합계 sx 값을 더하면서 그때그때 값을 출력합니다. 두 프로그램이 다른 점은 무엇일까요? forrange(1, 11) 명령에 따라 1부터 1씩 더하면서 10까지(11은 제외) 반복합니다. whilex1을 넣고(x = 1) 반복 블록을 시작하며, 반복 블록의 마지막에 x = x+1을 직접 명령어로 적습니다.

‘아니, 자동으로 처음 값도 설정해 주고 값도 1씩 더해 주는 for 명령어가 있는데, 왜 굳이 while 명령어가 필요하지?’라는 생각이 들 수 있습니다. 하지만 while 명령이 더 유용할 때가 있습니다. 지금부터 그 예를 살펴 보겠습니다.

이번에 만들 프로그램은 컴퓨터가 1~30 사이에 있는 숫자를 하나 뽑으면 사용자가 그 숫자가 무엇인지 맞히는 게임입니다. 사용자가 추측해서 입력한 숫자가 컴퓨터가 생각한 숫자와 같으면 ‘정답’이라고 알린 뒤 프로그램을 종료하고, 다르면 더 큰지 작은지를 알려줘 사용자가 숫자를 맞힐 수 있게 힌트를 주는 것입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.