3.6 조건연산자 [doc] [smts]
조건 연산자(혹은 삼항 연산자라고도 한다)의 형식은 다음과 같다.
(조건식) ? 표현식1 : 표현식2; |
조건연산자는 조건식이 참일 경우에는 표현식1을 선택(혹은 수행)하고, 거짓인 경우에는 표현식2를 선택(혹은 수행)시키는 연산자이다. 표현식에는 상수, 변수, 수식, 함수 호출 등이 올 수 있다.
예를 들어보면 다음과 같다.
(fa > fb)? printf(“true”):printf(“false”);ir = ( i > j ) ? 1 : 0 ;ir = ( ca == cb ) ? (ia+ib) : (ia-ib) ; |
이 연산자는 if~else 문을 줄여서 쓴 형태라고 볼 수 있으며 if~else보다 간결하므로 단순 비교의 경우에는 자주 사용된다.
이것을 이용하여 두 수 중 큰 것을 구하는 간단한 프로그램을 작성해 보자.
int ia = 5, ib = 7, max;max = (ia>ib)? ia:ib; |
이 프로그램을 다음과 완전히 동일하다.
int ia=5, ib = 7, max;if (ia>ib) {max = ia;} else {max = ib;} |
또 다른 예를 들어보자.
ex03-08.c |
#include<stdio.h>int main(){char cA = 'A', cB = '0';unsigned short usA;usA = (cA == 'A')? 1:0;printf("usA:%d\n", usA);(cB == 48)? printf("cB:'0'\n"):printf("cB: not '0'\n");} |
실행 결과
usA:1cB:'0' |
조건 연산자는 사용 빈도가 높은 편이므로 잘 익혀두어야 한다.
'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글
C/C++의 대입연산자 (0) | 2015.05.20 |
---|---|
C/C++의 증감연산자(++, --) (0) | 2015.05.19 |
C/C++의 논리 연산자 (0) | 2015.05.19 |
3.4 관계 연산자 (0) | 2015.05.19 |
3.2 산술 연산자와 부호 연산자 (0) | 2015.05.19 |