백준풀기
[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;
}