백준풀기

[c++] 백준 10952번 A+B-5 (c++에선 a==b==c가 안되는 이유)

해언뵤 2024. 1. 30. 13:13

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

 

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
입력의 마지막에는 0 두 개가 들어온다.

 

출력

각 테스트 케이스마다 A+B를 출력한다.

 

 

문제풀이

이 문제는 쉽다. 하지만 이 문제에 대해 글을 작성하는 이유는 c++에서 a==b==c가 왜 안되는지를 알아보기 위함이다.
안되는 이유는 c++에서 비교 연산자가 체이닝되지 않기 때문이다. 즉, a==b를 평가한 후 그 결과가 c와 비교되는 것이 아니라 a==b의 결과는 true or false이며 이 값이 c와 비교되지 않는다. 그러므로 a==b&&b==c와 같이 별도로 수행해야 한다.
#include <iostream>
using namespace std;

int main(){
    int a,b;
    
    while(true){
        cin >> a >> b;
        if (a == 0 && b== 0) break;
        else cout << a+b <<endl;
    }
    return 0;
}