🔥 삼항 조건 연산자

375자
5분

Swift는 삼항 조건 연산자(ternary conditional operator)라는 특별한 연산자를 제공해요. 이 연산자는 세 부분으로 구성되는데, question ? answer1 : answer2의 형태를 취하지요. 이는 question이 참인지 거짓인지에 따라 두 개의 표현식 중 하나를 평가하기 위한 지름길이랍니다. 만약 question이 참이라면, answer1을 평가하고 그 값을 반환해요. 그렇지 않으면, answer2를 평가하고 그 값을 반환하죠.

삼항 조건 연산자는 아래 코드의 축약형이에요:

if question {
    answer1
} else {
    answer2
}
swift

예를 들어볼까요? 아래 코드는 테이블 행의 높이를 계산하는 예제예요. 만약 행에 헤더가 있다면 행의 높이는 콘텐츠 높이보다 50 포인트 더 높아야 하고, 행에 헤더가 없다면 20 포인트 더 높아야 해요:

let contentHeight = 40 // 콘텐츠 높이를 40으로 설정
let hasHeader = true // 헤더 유무를 true로 설정
let rowHeight = contentHeight + (hasHeader ? 50 : 20) // 삼항 연산자를 사용하여 행 높이 계산
// rowHeight는 90과 같아짐
swift

위의 예제는 아래 코드의 축약형이랍니다:

let contentHeight = 40 // 콘텐츠 높이를 40으로 설정
let hasHeader = true // 헤더 유무를 true로 설정
let rowHeight: Int // 행 높이를 저장할 변수 선언
if hasHeader { // 헤더 유무에 따라 분기
    rowHeight = contentHeight + 50 // 헤더가 있으면 콘텐츠 높이에 50을 더함
} else {
    rowHeight = contentHeight + 20 // 헤더가 없으면 콘텐츠 높이에 20을 더함
}
// rowHeight는 90과 같아짐
swift

첫 번째 예제에서 삼항 조건 연산자를 사용한 덕분에, rowHeight를 단 한 줄의 코드로 올바른 값으로 설정할 수 있었어요. 이는 두 번째 예제에서 사용된 코드보다 훨씬 간결하죠.

삼항 조건 연산자는 두 개의 표현식 중 어떤 것을 고려할지 결정하는 데 있어 효율적인 지름길을 제공해요. 하지만 삼항 조건 연산자는 주의해서 사용해야 해요. 너무 남용하면 코드의 간결함이 오히려 가독성을 떨어뜨릴 수 있거든요. 여러 개의 삼항 조건 연산자 인스턴스를 하나의 복합 문장으로 결합하는 것은 피하는 게 좋아요.

삼항 조건 연산자의 사용 예를 하나 더 들어볼게요:

let age = 20 // 나이를 20으로 설정
let canDrink = age >= 21 ? "🍺" : "🥤" // 나이에 따라 마실 수 있는 음료 결정
// canDrink는 "🥤"와 같아짐
swift

위 코드에서는 age가 21 이상인지 확인하여, 맞다면 "🍺"를, 그렇지 않다면 "🥤"canDrink에 할당하고 있어요. 이처럼 삼항 조건 연산자를 사용하면 조건에 따라 값을 간단히 할당할 수 있답니다.

물론 복잡한 조건이라면 if문을 사용하는 게 더 적합할 거예요. 하지만 간단한 조건이라면 삼항 조건 연산자를 사용하면 코드를 더 간결하고 읽기 쉽게 만들 수 있어요.