16.7 연습문제: 변수 두 개를 다르게 반복하기
다음 소스 코드를 완성하여 정수 2 5, 4 4, 8 3, 16 2, 32 1이 각 줄에 출력되게 만드세요.
practice_while.py
i = 2 j = 5 ① print(i, j) ②
실행 결과
2 5 4 4 8 3 16 2 32 1
정답
① while i <= 32 or j >= 1: ② i *= 2 j -= 1
해설
출력된 숫자의 규칙을 살펴보면 첫 번째 숫자는 2부터 크기가 두 배씩 늘어나서 32까지 출력되고, 두 번째 숫자는 5부터 1씩 줄어들어서 1까지 출력됩니다. 따라서 while 반복문 안에서 반복할 때마다 변수 i는 2배씩 만들고, j는 1씩 감소시킵니다.
먼저 i는 32까지 출력하고, j는 1까지 출력해야 하므로 while에 조건식을 i <= 32 or j >= 1과 같이 지정합니다. 사실 여기서는 i와 j 모두 다섯 번씩 반복하므로 i <= 32만 지정하거나 j >= 1만 지정해도 상관없습니다. 또는, i <= 32 and j >= 1와 같이 and 연산자를 사용해도 결과는 같습니다. 이런 조건식은 각 상황에 맞게 지정해주면 됩니다.
반복문 안에서는 i *= 2로 i를 두 배씩 늘어나도록 만들고, j -= 1로 j를 1씩 줄어들게 만들면 됩니다.