반응형
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 |