C/C언어 이론

(3-7)Operator

T_Y 2018. 10. 2. 14:44
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
 
void main()
{
    /*
        조건연산자 (삼항연산자)
            조건식 ? 식1 : 식2
                > 조건식이 참(1)이면 식1을 수행, 거짓(0)이면 식2를 수행
                > 코드에 ? 가 있으면 삼항연산자라고 생각! 콜론(:)을 찾기
    */
 
    int iNum1 = 10;
    int iNum2 = 0;
 
    printf("iNum1은 %s\n", iNum1 == 0 ? "0입니다." : "0이 아닙니다.");
    // (1) 삼항연산자의 식1, 식2는 printf()의 %s에 들어갈 값으로 '사용'
 
    iNum2 = iNum1 > 0 ? iNum1 : 0;
    // iNum1이 0보다 크면,    iNum2 = iNum1; 과 같다.
    // iNum1이 0보다 작으면, iNum2 = 0; 과 같다.
    // 대입이 가장 마지막에 수행된다.  int iNum = 10 + 20;
    //    >> 우측항에 있는 식이 먼저 수행
    printf("iNum2 = %d\n", iNum2);
    // (2) 삼항연산자의 식1, 식2는 iNum2 변수에 대입될 값으로 '사용'
 
 
    // 삼항연산자 중첩 (식1이나 식2에 새로운 삼항연산자 사용) -> 복잡
    iNum2 = 20 > 30 ? 20 : (3 > 2 ? 3 : 2);
    // 20이 30보다 크면 20을 대입, 아니면 (식2) 새로운 삼항연산자를 수행!
    //        3이 2보다 크면 3을 대입, 아니면 2를 대입
    printf("iNum2 = %d\n", iNum2);
 
    // 뒤에 배우는 '조건문' 으로 삼항연산자를 대체할 수 있다.
    // 어떻게보면 삼항연산자가 코드가 짧아져서 좋아보일 순 있지만.. 가독성 떨어짐
}
cs




반응형

'C > C언어 이론' 카테고리의 다른 글

(3-input)Operator  (0) 2018.10.02
(3-8)Operator  (0) 2018.10.02
(3-6)Operator  (0) 2018.10.02
(3-5)Operator  (0) 2018.10.02
(3-4)Operator  (0) 2018.10.02