A+B - 5

import sys


def main():
    input = sys.stdin.readline

    while True:
        a, b = map(int, input().split())
        if 0 == a == b:
            break
        print(a + b)


main()

실행 흐름 바꾸기 3

for문은 여러 값들에 대해서 같은 문장을 반복해서 실행합니다. 이번 문제처럼 특정 조건이 만족될 때까지 반복해서 실행해야 하는 경우에는 while문을 사용합니다.

while

while문은 다음과 같이 작성합니다.

while 표현식:
    문장

코드 흐름이 while에 이르면 표현식의 값을 평가합니다. 값이 참으로 평가된다면 while문 내부의 문장들이 실행됩니다. 문장들이 모두 실행된 후에는 코드 흐름이 다시 올라가서 표현식의 값을 평가합니다. 그 과정을 반복하다가 표현식의 값이 거짓으로 평가되면 바로 while문을 빠져나옵니다.

break

for문은 모든 항목의 이터레이트가 끝났을 때, while문은 조건이 거짓이 되었을 때 각각 반복이 종료됩니다. 그 외에, 문장을 실행하다가 반복을 빠져나오려면 break를 사용합니다.

arr = [3, 1, 4, 1, 5, 9, 2]

for x in arr:
    print(x)
    if x > 3:
        break
    print(x)

위 코드는 arr의 항목을 하나씩 이터레이트하며 출력하는데, $x > 3$이면 break로 반복을 빠져나옵니다. 따라서 3, 3, 1, 1, 4가 한 줄씩 출력됩니다.

여러 반복문(for문이나 while문)들이 중첩되어 있다면, break는 자신이 속해있는 가장 안쪽 반복문을 빠져 나옵니다.

while True:는 표현식 True는 항상 참이므로 일반적인 종료 조건으로는 반복이 종료되지 않아서 무한 루프라고 합니다. 이때 문장 내부에 if 조건식: break를 추가하여 종료 조건을 만들 수 있습니다.

댓글