Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C/C++ 조건 연산자(삼항 연산자) 사용 방법 완벽 가이드

C/C++ 조건 연산자란?

C와 C++에서 조건 연산자(Conditional Operator)는 흔히 삼항 연산자(Ternary Operator)라고도 불립니다. 이름 그대로 세 개의 피연산자를 사용하는 것이 특징입니다.

Exp1 ? Exp2 : Exp3;

여기서 Exp1, Exp2, Exp3은 각각 표현식(expression)이며, 콜론(:)의 위치와 용도에 주목할 필요가 있습니다.

조건 연산자의 동작 원리

? 연산식의 값은 다음과 같은 순서로 결정됩니다.

  • 먼저 Exp1이 평가됩니다.
  • Exp1이 참(true)이면 Exp2가 평가되고, 그 결과값이 전체 ? 연산식의 값이 됩니다.
  • Exp1이 거짓(false)이면 Exp3가 평가되고, 그 결과값이 전체 연산식의 값이 됩니다.

if-else 문을 대체하는 삼항 연산자

? 연산자를 '삼항(ternary)' 연산자라고 부르는 이유는 세 개의 피연산자를 필요로 하기 때문이며, 다음 형태의 if-else 문을 간결하게 대체할 수 있습니다.

if(condition) {
    var = X;
} else {
    var = Y;
}

예를 들어 아래와 같은 코드가 있다고 가정해 보겠습니다.

if(y < 10) {
   var = 30;
} else {
   var = 40;
}

위 코드는 삼항 연산자를 활용하면 단 한 줄로 다음과 같이 바꿀 수 있습니다.

var = (y < 10) ? 30 : 40;

전체 예제 코드

#include <iostream>
using namespace std;
int main () {
   // 지역 변수 선언
   int x, y = 10;
   x = (y < 10) ? 30 : 40;
   cout << "value of x: " << x << endl;
   return 0;
}

실행 결과

value of x: 40

y의 값이 10이므로 조건 (y < 10)은 거짓이 되고, 따라서 Exp3에 해당하는 40이 변수 x에 할당됩니다. 이처럼 삼항 연산자를 활용하면 간단한 조건 분기를 한 줄로 처리하여 코드를 더욱 깔끔하고 가독성 있게 만들 수 있습니다.