POST

C언어 조건 연산자(삼항 연산자) 사용법

조건 연산자: 피연산자가 세개인 '삼 항 연산자'



이 조건 연산자는 피연산자의 수가 세개이기 때문에 삼 항 연산자로도 불린다. 조건 연산자는 if~else문을 일부 대체 할 수 있습니다.


조건 연산자의 구성은 아래처럼 이루어져 있다.

조건 ? TRUE : FALSE;


조건 연산자는 기호 '?' 와 기호 ':' 으로 이루어져 있으며, 두개의 기호가 서로 떨어져 하나의 연산자를 구성하기 때문에 피연산자를 3개 까지 둘 수 있는 것입니다.


위의 조건연산자의 구성을 바탕으로 하여 다시 작성 한다면 아래의 예처럼 쓸 수 있습니다.


num1>num2 ? num1 : num2;


위의 문장에서 조건이 '참(TRUE)' 이면 연산결과로 num1이 반환 되고, 조건이 '거짓(FALSE)'라면 연산결과로 num2가 반환된다.


또한 이 조건 연산자는 대입 연산자보다 우선 순위가 높기 때문에 아래와 같이 활용 할 수 있다.


int data = num1>num2 ? num1 : num2;


위의 문장을 풀어쓴다면 num1이 num2보다 크기가 크다면 num1이 반환되어 data로 대입되고 반대로 num2가 크다면 num2가 반환되어 data로 대입됩니다.

이해를 돕자면 아래와 같은 형태가 됩니다.


위 조건이 참일 경우

int data = num1;


위 조건이 거짓일 경우

int data = num2;


완전한 이해를 돕기 위해 아래의 간단한 예제로 확인을 해보는 것이 좋습니다.


결과


위의 예제 처럼 반환해야 할 값에 변수뿐만이 아니라 연산식도 올 수 있습니다. 때문에 num*(-1)이 abs에 대입 될 수  있는 것 입니다. 이 경우에는 연산식의 계산 결과가 반환이 됩니다.


또한 아래의 예제 처럼 다양하게 활용 할 수도 있습니다.


결과


위 예제처럼 printf함수를 반환 하는것도 가능합니다.



조건 연산자라는 것이 처음에 는 어색 하지만 간단한 if~else를 대체 할 수 있는 매우 간편한 연산자입니다.

if~else를 대체 하여 소스코드를 간결하게 만들 수 있으니 잘 숙지 하도록 합니다.


도움이 되셨다면 아래의 공감 버튼 한번 눌러 주시기 바랍니다.