Contents

조회 수 14227 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

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
번호 분류 제목 글쓴이 날짜 조회 수
45 Etc RSVP 란? file hooni 2017.11.22 973
44 System/OS RPA란? 어디에 어떻게 쓰이고 누가 만드나? file hooni 2020.01.28 1345
43 Algorithm Polynomial time 이란? ㅋㅋ hooni 2013.04.23 22264
42 System/OS php.ini 설정 안됐을때.. ㅋㅋ hooni 2013.04.23 11637
41 System/OS OSI (Open Systems Interconnection) 개방형 시스템간 상호 접속 file hooni 2013.04.23 10783
40 Develop OPT와 CAS에 대한 자료.. (교수님 메일로 보내드린 자료..) file hooni 2013.04.23 13911
39 System/OS OpenSSL로 ROOT CA 생성 및 SSL 인증서 발급하기 hooni 2017.10.28 1446
38 Develop OpenGL 강좌 사이트 모음 hooni 2013.04.23 9635
37 Develop OGNL(Object Graph Navigation Language) hooni 2013.04.23 15723
36 Algorithm OCB5 Injection 앗싸뵹! ㅋㅋ file hooni 2014.07.01 793
35 System/OS NAT와 DHCP에 대한 간단한 설명 hooni 2013.04.23 18328
34 System/OS Mac에서 Node.js 설치하기 file hooni 2018.09.28 4179
Board Pagination Prev 1 ... 89 90 91 92 93 94 95 96 97 98 Next
/ 98