Contents

Views 14227 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

C 언어의 조건 연산자(conditional operator)에는 다음과 같은 3항(ternary)연산자가 있다.

수식1 ? 수식2 ? : 수식3

이 조건 연산자는 수식1이 먼저 평가되어 참(0 이외의 값)이면 수식2가 평가되고, 거짓(0의 값)이면 수식3이 평가된다. 이 형식은 6장에서 언급할 if 문의 형태로 표현할 수 있다. 예를 들어, 

min = (y < z) ? y : z;


if (y < z)
   min = y;
else
   min = z;

로 표현할수 있으며, 그 의미는 y가 z보다 작으면 min에 y값을 배정하고, 그렇지 않으면 min 에 z값을 배정한다.

한편, '수식1 ? 수식2 : 수식3' 의 형(type)은 수식2와 수식3의 형에 의해 결정된다.
따라서 수식2와 수식3이 서로 다른 형이면 일반적인 형 변환 규칙이 적용된다. 주의 할 점은 수식2 또는 수식3 두 수식 중 어느 하나가 평가되는가와 관계없이 형 변환이 일어난다는 점이다.

이러한 조건 연산자의 사용 예와 연산 우선 순위 및 결합성은 다음과 같다.

예5. 18 조건 연산자의 연산 우선 순위의 결합성

[변수 선언 및 값의 배정]
char a='a', b='b', c='c';  /* a는 10진값 97을 가짐  */
int  i=1, j=2, k=3;
float  x=3.337;

수식 우선 순위와 결합성 결과값
i==j?a-1:b+1 (i==j)?(a-1):(b+1) 99 int
k%3==0?i:x+1 ((k%3)==0)?i:(x+1) 1.0 double
k%3?i:x+1 (k%3)?i:(x+1) 4.337 double
문장 출력 결과
printf("n%d tree%c", k, (k==1)?'':'s'); 3trees
printf"n%d frog%c", k, (k==1)?'':'s'); 1frog


조건연산자는 오른쪽에서 왼쪽으로 결합성을 갖는다.

?

List of Articles
No. Category Subject Author Date Views
21 Develop 웹페이지 성능 테스트 툴 설명 hooni 2013.04.23 27447
20 Develop 이어서 작업할 내용~ secret hooni 2013.11.21 0
19 Etc 이클립스(Eclipse) 유용한 단축키 ㅋㅋ hooni 2013.04.23 21765
18 Etc 인증서 *.p12 파일을 *.pem 파일로 변환 hooni 2015.04.30 1808
17 Develop 자주 쓰는 Docker 명령어 alias hooni 2020.01.10 269576
16 Develop 정리할 자료. file hooni 2015.07.02 679
15 Etc 정보시스템(정보보안)의 위험관리 설명 hooni 2013.04.23 19337
14 Etc 종합시험 관련 자료 secret hooni 2017.03.15 0
13 Develop 참고하고 지울 자료.. 집에서 바야지.. ㅋㅋ file hooni 2013.04.23 12126
12 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
11 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 980
10 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 739
Board Pagination Prev 1 ... 89 90 91 92 93 94 95 96 97 98 Next
/ 98