백준 10951번 A+B - 4
문제
입력은 여러 개의 테스트 케이스이고, 각 줄에 A와 B가 주어진다(0보다 크고 10보다 작다). 케이스 수는 주어지지 않으며, 각 케이스마다 A+B를 출력한다.
풀이
케이스 수를 알 수 없어서 막혔고 결국 검색해서 try와 except를 떠올렸다. 자주 쓰지 않아 익숙하지 않았다.
while True:
try:
A, B = map(int, input().split())
print(A + B)
except:
breakwhile True로 계속 입력을 읽다가, 더 읽을 입력이 없으면 input()이 EOFError를 일으키고 except로 넘어가 break로 반복을 끝낸다.
짚고 갈 점
- 원글에서는
A만 입력된 경우처럼 오류가 나면 멈춘다고 적었다. 이 문제에서 반복을 끝내는 것은 입력의 끝(EOFError)이다. 값이 하나뿐인 줄이 들어와ValueError가 나도 같은except로 빠진다. - 이름 없는
except는 모든 예외를 잡는다. 입력 종료만 처리하려면except EOFError:로 쓰는 편이 정확하다.