조건 연산자: 피연산자가 세개인 '삼 항 연산자'
이 조건 연산자는 피연산자의 수가 세개이기 때문에 삼 항 연산자로도 불린다. 조건 연산자는 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를 대체 하여 소스코드를 간결하게 만들 수 있으니 잘 숙지 하도록 합니다.
도움이 되셨다면 아래의 공감 버튼 한번 눌러 주시기 바랍니다.
'C' 카테고리의 다른 글
C언어 로또번호 생성하기 (당첨확률높이기) (0) | 2018.05.15 |
---|---|
C언어 Visual studio 에서 콘솔창 사라져요/유지하기 (4) | 2017.12.27 |
C언어의 시작-최신버전 비주얼 스튜디오 무료로 설치하기(Visual Studio Community) (0) | 2017.03.27 |
C언어 입력한 정수의 자리 수 구하기 (0) | 2017.03.14 |
C언어 While반복문을 이용한 입력한 정수를 반대로 출력하기 (0) | 2017.03.14 |