[C언어] 조건연산자 ?:
조건연산자(conditional expression)는 C언어에서 유일한 삼항 연산자(termary operator)입니다. 그럼 연산자의 종류부터 알아보겠습니다. 단항 연산자(unary operator)는 피연산자가 하나인 연산자입니다. 부호를 나타내는 +,- 증감을 나타내는 증감연산자인 ++,--가 그 종류입니다. 피연산자가 두 개인 연산자는 이항 연산자(binary operator)라 부르는데 대입(=), 비교(>=,==,<==), 산술(+,-,*,/) 등이 예입니다. 그럼 이제 삼항 연산자에 사용하는 조건 연산자에 대해 알아보겠습니다.
조건 연산자
앞서 언급했듯 조건연산자는 C언어에서 유일한 삼항 연산자 입니다. 조건 연산자의 형식은 다음과 같습니다.
expression1 ? expression2 : expression3;
expression1의 값이 참이면(0이 아니면), 전체 조건 표현식은 expression2와 같은 값을 갖고 반대로 expression1의 값이 거짓(0이면) expression3 와 같은 값을 지니게 됩니다.
조건 연산자의 표현식(?:)은 두 값중 하나의 값을 대입하려 할때 유용합니다.
min = (a<b)?a:b. ==> (3<5), 5가 3보다 큰것은 참이므로 min의 값은 3입니다.
max = (a>b)?a:b ==> (3>5), 3이 5보다 큰것은 거짓이므로 max의 값은 5입니다.
조건 연산자의 예제 코드
1
2
3
4
5
6
7
8
9
10
|
#include <stdio.h>
int main()
{
int m = 5, n = 4;
(m > n) ? printf(" %d > %d\n", m, n)
: printf("%d > %d\n",n, m);
return 0;
}
|
일반적으로, if else 문으로도 조건 연산자의 구현이 가능합니다. 이는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <stdio.h>
int main()
{
int m = 5, n = 4;
//조건 연산자
(m > n) ? printf(" %d > %d\n", m, n)
: printf("%d > %d\n",n, m);
//if else
if(m>n){
printf(" %d > %d\n", m, n);
}
else{
printf("%d > %d\n",n, m);
}
return 0;
}
|
이상으로 조건연산자에 대해 알아봤습니다. 감사합니다.
'ET의 공부 > C언어' 카테고리의 다른 글
[C언어] switch break문 (0) | 2020.12.19 |
---|---|
[C언어] continue 와 break (0) | 2020.12.19 |
[C언어] 논리 연산자 && || ! (0) | 2020.12.16 |
[C언어] 배열을 이용해서 표준편차 구하는 방법 (0) | 2020.12.16 |
[C언어] 재귀함수를 사용하여 문장 뒤집기(반전) (0) | 2020.12.16 |