삼항 연산자를 사용하여 여러 조건을 처리하는 방법은 무엇인가요?
_____Q1. 삼항 연산자란 무엇인가요?
A1. 삼항 연산자는 조건식 ? 표현식1 : 표현식2 형태로 조건식을 평가해 참일 때 표현식1, 거짓일 때 표현식2를 반환하는 연산자입니다. 간단한 if-else를 한 줄로 대체할 때 유용합니다.
Q2. 기본 문법은 어떻게 되나요?
A2.
조건식 ? 결과1 : 결과2
예) let max = a > b ? a : b; // a가 b보다 크면 a, 아니면 b
Q3. 여러 조건을 처리하려면 어떻게 하나요?
A3. 삼항 연산자를 중첩하여 체이닝(chain) 방식으로 작성할 수 있습니다.
예)
let grade = score >= 90 ? 'A'
: score >= 80 ? 'B'
: score >= 70 ? 'C'
: score >= 60 ? 'D'
: 'F';
Q4. 중첩 삼항 연산자 사용 시 주의할 점은?
A4.
• 가독성이 떨어질 수 있으므로 적절한 들여쓰기와 주석 활용
• 복잡해지면 오히려 실수를 유발하므로 if-else 또는 switch문 고려
• 들여쓰기로 조건 간 구분을 명확히 하고, 너무 긴 표현식은 함수로 분리
Q5. 예제: 사용자 등급 분기 처리
let points = 450;
let level = points >= 1000 ? 'Platinum'
: points >= 500 ? 'Gold'
: points >= 100 ? 'Silver'
: 'Bronze';
console.log(level); // points가 450이므로 'Silver'
Q6. 가독성을 높이는 팁이 있나요?
A6.
• 중첩 깊이를 2~3단계 이내로 유지
• 조건을 함수나 변수로 분리하여 역할을 명확히 표시
• 팀 컨벤션에 따라 공백 및 줄바꿈 규칙 통일
Q7. 언제 삼항 연산자 대신 다른 문법을 써야 하나요?
A7.
• 조건이 매우 복잡하거나 여러 분기마다 부수 효과(side effect)가 있을 때
• 중첩 삼항이 깊어져 유지보수가 어려워질 때
• switch문이나 if-else체가 로직 흐름 파악에 더 유리할 때
Q8. 실무에서 추천되는 패턴은?
A8.
1) 간단한 단일 조건: 삼항 연산자 사용
2) 복수 조건 분기: if-else 또는 switch에 로직을 위임
3) 결과 표현이 간단할 때만 삼항 연산자 체이닝 허용
4) 복잡 시 전용 함수로 분리하여 명명된 함수 호출 형태로 유지보수성 확보
일반적으로 `조건 ? 참일 때의 값 : 거짓일 때의 값` 형태로 사용됩니다.
여러 조건을 처리할 때는 삼항 연산자를 중첩하여 사용할 수 있습니다.
하지만 중첩된 삼항 연산자는 가독성을 떨어뜨릴 수 있으므로, 사용 시 주의가 필요합니다.
기본적인 삼항 연산자 사용법 삼항 연산자의 기본 구조는 다음과 같습니다: ```javascript let result = (조건) ? (참일 때의 값) : (거짓일 때의 값); ``` 예를 들어, 숫자가 양수인지 음수인지 판별하는 경우: ```javascript let number = 5; let result = (number > 0) ? "양수" : "음수 또는 0"; console.log(result); // "양수" ``` 여러 조건 처리하기 여러 조건을 처리할 때는 삼항 연산자를 중첩하여 사용할 수 있습니다.
예를 들어, 점수를 기준으로 학점을 부여하는 경우를 생각해보겠습니다: ```javascript let score = 85; let grade = (score >= 90) ? "A" : (score >= 80) ? "B" : (score >= 70) ? "C" : (score >= 60) ? "D" : "F"; console.log(grade); // "B" ``` 위의 예제에서 `score`가 90 이상이면 "A", 80 이상이면 "B", 70 이상이면 "C", 60 이상이면 "D", 그 외에는 "F"를 반환합니다.
이처럼 중첩된 삼항 연산자를 사용하여 여러 조건을 처리할 수 있습니다.
가독성 문제 중첩된 삼항 연산자는 가독성을 떨어뜨릴 수 있습니다.
따라서 복잡한 조건문을 처리할 때는 `if-else` 문을 사용하는 것이 더 나은 선택일 수 있습니다.
예를 들어, 위의 학점 부여 예제를 `if-else` 문으로 작성하면 다음과 같습니다: ```javascript let score = 85; let grade; if (score >= 90) { grade = "A"; } else if (score >= 80) { grade = "B"; } else if (score >= 70) { grade = "C"; } else if (score >= 60) { grade = "D"; } else { grade = "F"; } console.log(grade); // "B" ``` 이렇게 하면 코드의 가독성이 높아지고, 유지보수도 용이해집니다.
결론 삼항 연산자는 간단한 조건을 처리하는 데 유용하지만, 여러 조건을 처리할 때는 중첩 사용으로 인해 가독성이 떨어질 수 있습니다.
따라서 복잡한 로직을 구현할 때는 `if-else` 문을 사용하는 것이 더 바람직할 수 있습니다.
상황에 따라 적절한 방법을 선택하여 사용하는 것이 중요합니다.
작성자:
정현우 [비회원]
| 작성일자: 1년 전
2024-12-24 02:11:25
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.