https://www.acmicpc.net/problem/5656
처음에는 모든 연산자에 대해 if (연산자) 안에 해당 연산자에 맞추어 실제로 a, b를 비교하는 코드를 짜려고 했었다. 그런데 아무리 생각해도 너무 코드 양이 많아서 이게 맞나...싶었다.
모든 if문 안에서 true/false를 출력하는 대신 아래처럼 결과를 bool형 변수에다가 받은 뒤, 맨 마지막에 cout를 한번만 해주는게 훨씬 코드가 깔끔해 보인다.
#include <iostream>
using namespace std;
int main() {
int count = 0;
while (true) {
count++;
int a, b;
string op;
cin >> a >> op >> b;
if (op == "E") break;
bool result = false;
if (op == ">") result = (a > b);
else if (op == ">=") result = (a >= b);
else if (op == "<") result = (a < b);
else if (op == "<=") result = (a <= b);
else if (op == "==") result = (a == b);
else if (op == "!=") result = (a != b);
cout << "Case " << count << ": " << (result ? "true" : "false") << endl;
}
return 0;
}