BOJ | 10951번

송치헌·2021년 6월 12일
0
post-thumbnail
post-custom-banner

Python 풀이

import sys

while True:
    #try : 실행 // except : 예외
    try: 
        a, b = map(int,sys.stdin.readline().split())
        print(a + b)
    except:
        exit()

C언어에서의 try ~ catch 구문과 비슷하다. 쉽게 얘기하면 if문과 비슷하다.
try문을 실행하는데, 오류가 발생하면 except문으로 간다.

위의 코드를 그냥

while True:
    a, b = map(int,sys.stdin.readline().split())
    print(a + b)

이렇게 작성해 버리면 실행은 된다. 내가 콘솔창을 닫을 때까지....
그런데 여기서 a와 b를 int형으로 받아오게 작성했는데 만약 누군가 입력을 float형으로 한다?! 그러면 오류가 나면서 실행이 종료된다. 문제의 요구는 만족하지만 오류가 일어나며 실행이 끝나니 컴퓨터에 무리가 갈 수도 있고 찝찝하다...그래서 try ~ except문으로 오류를 잡아내버린다.

try: 
    a, b = map(int,sys.stdin.readline().split())
    print(a + b)
except:
    exit()

a와 b에 정수가 아닌 다른 자료형이 입력되면 except문으로 가서 실행을 종료시킨다. exit()대신에 break를 써도 무방하다.

C++ 풀이

#include <iostream>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int A, B;
    while (cin >> A >> B) { #A와 B가 입력되는 동안은 계속 유지
    	cout << A + B << '\n';
    }
}

이것도 while 조건에 cin >> A >> B를 설정해주면 if문과 마찬가지로 조건이 성립하는지 확인하고 조건이 참이면 반복문을 실행한다. A와 B가 int형 변수인데 다른 자료형이 입력되면? 당연히 조건이 거짓이 된다. 그래서 정수가 아닌 다른 자료형이 입력되면 while문이 실행되지 않는다.

profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요
post-custom-banner

0개의 댓글