null
vuild_
Nodes
Flows
Hubs
Login
MENU
Notifications
Login
⌂
c-lang-beginner
Structure
intro
•
C언어란?
•
C언어의 역사
•
개발 환경 설치
basics
•
변수 (Variables)
•
자료형 (Data Types)
•
연산자 (Operators)
io
•
printf — 출력 함수
•
scanf — 입력 함수
control-flow
•
if-else 조건문
•
switch 문
•
삼항 연산자 (Ternary Operator)
loops
•
for 반복문
•
while 반복문
•
do-while 반복문
functions
•
함수 정의와 호출
•
매개변수와 반환값
•
재귀 함수 (Recursion)
arrays
•
1차원 배열
•
2차원 배열
strings
•
문자열 기초
•
문자열 함수
project
•
프로젝트: 사칙연산 계산기
Flow Structure
switch 문
11 / 22
for 반복문
☆ Star
↗ Full
삼항 연산자 (Ternary Operator)
#c
#c-lang
#beginner
#control-flow
#ternary
@devpc
|
2026-03-29 13:24:27
|
GET /api/v1/flows/4/nodes/29?fv=1&nv=2
Context:
Flow v1
→
Node v2
0
Views
0
Calls
# 삼항 연산자 (Ternary Operator) ## 기본 문법 `if-else`를 **한 줄로 줄인** 조건 표현식입니다. ```c 조건 ? 참일 때 값 : 거짓일 때 값 ``` --- ## if-else와 비교 ```c int score = 75; char *result; // if-else 방식 if (score >= 60) { result = "합격"; } else { result = "불합격"; } // 삼항 연산자 방식 (동일한 결과) result = (score >= 60) ? "합격" : "불합격"; printf("%s\n", result); // 합격 ``` --- ## 직접 출력에 활용 ```c int age = 20; printf("성인 여부: %s\n", age >= 18 ? "성인" : "미성년자"); // 출력: 성인 여부: 성인 ``` --- ## 변수 초기화에 활용 ```c int x = 10, y = 20; int max = (x > y) ? x : y; // 더 큰 값을 max에 저장 printf("최댓값: %d\n", max); // 20 int abs_val = (x >= 0) ? x : -x; // 절댓값 ``` --- ## 중첩 삼항 연산자 삼항 연산자를 중첩하면 여러 조건을 처리할 수 있지만, 가독성이 크게 떨어집니다. ```c int score = 85; // 중첩 삼항 — 동작하지만 읽기 어려움 char grade = (score >= 90) ? 'A' : (score >= 80) ? 'B' : (score >= 70) ? 'C' : (score >= 60) ? 'D' : 'F'; printf("%c\n", grade); // B ``` > 이 경우는 `if-else if` 체인이 더 가독성이 좋습니다. --- ## 가독성 주의사항 ### 삼항이 적합한 경우 단순한 2분기이고, 한 눈에 의미가 파악될 때 사용합니다. ```c // ✅ 간결하고 명확 int abs_x = (x >= 0) ? x : -x; printf("로그인: %s\n", is_logged_in ? "ON" : "OFF"); ``` ### 삼항이 부적합한 경우 로직이 복잡하거나 코드 블록이 필요한 경우에는 `if-else`를 사용합니다. ```c // ❌ 너무 복잡한 삼항 — 유지보수 어려움 int result = (a > b) ? (a > c ? a : c) : (b > c ? b : c); // ✅ if-else로 명확하게 int result; if (a > b && a > c) result = a; else if (b > c) result = b; else result = c; ``` --- ## 예제: 홀짝 판별 ```c #include <stdio.h> int main() { int n; printf("숫자를 입력하세요: "); scanf("%d", &n); printf("%d은(는) %s입니다.\n", n, (n % 2 == 0) ? "짝수" : "홀수"); // 양수/음수/0 판별 char *sign = (n > 0) ? "양수" : (n < 0) ? "음수" : "영"; printf("부호: %s\n", sign); return 0; } ``` --- ## 정리 | 상황 | 권장 | |------|------| | 단순 2분기, 값 반환 | 삼항 연산자 ✅ | | 3분기 이상 | if-else ✅ | | 블록 내 여러 줄 실행 | if-else ✅ | | 중첩 조건 | if-else ✅ | ---
switch 문
for 반복문
// COMMENTS
ON THIS PAGE
No content selected.