연산자의 종류: 단항, 이항, 삼항
지금까지 우리가 봐온 연산자들은 작동하는 대상(target)의 수에 따라 세 가지 범주로 분류할 수 있습니다: 단항(unary), 이항(binary), 삼항(ternary) 연산자입니다.
1. 단항 연산자: 하나의 대상을 바꾸는 연산자
단항 연산자는 하나의 대상에만 작동합니다. 대표적인 예는 **논리 부정 연산자(!
)**입니다.
이 연산자는 불리언(Bool
) 값 하나를 대상으로 하여 그 값을 반전시킵니다 (true
는 false
로, false
는 true
로).
Swift
Swift
let userAge = 15
let drivingAge = 16
// if문 없이도 비교 결과를 상수에 직접 할당할 수 있습니다.
// 이 경우 'isDrivingAge' 상수는 Bool 타입을 갖게 됩니다.
let isDrivingAge = userAge >= drivingAge // 15 >= 16 이므로 결과는 false
// 'isDrivingAge'가 false이므로, '!' 연산자는 이를 true로 반전시킵니다.
// 따라서 if문 안의 코드가 실행됩니다.
if !isDrivingAge {
print("사용자는 운전 가능 연령이 아닙니다.")
}
2. 이항 연산자: 두 대상 사이에서 작동하는 연산자
이항 연산자는 두 개의 대상 사이에서 작동합니다. 우리가 지금까지 배운 대부분의 연산자가 여기에 속합니다.
- 산술 연산자:
+
,-
,*
,/
- 비교 연산자:
==
,>
,!=
등 - 논리 연산자:
&&
(AND),||
(OR)
논리 연산자(&&
, ||
)는 두 개의 불리언 값을 직접 비교하는 데 사용할 수 있습니다.
Swift
Swift
let hasProvisionalLicense = true
let hasPassedDrivingTest = false
// '&&' (AND) 연산자는 두 개의 Bool 값을 대상으로 합니다.
// 두 값이 모두 true여야만 전체 결과가 true가 됩니다.
// 여기서는 하나가 false이므로, else 블록이 실행됩니다.
if hasProvisionalLicense && hasPassedDrivingTest {
print("운전이 허용됩니다.")
} else {
print("운전이 허용되지 않습니다.")
}
3. 삼항 조건 연산자: 세 개의 대상을 다루는 미니 if
문
삼항 연산자는 이름에서 알 수 있듯이 세 개의 대상을 가지며, Swift에서는 삼항 조건 연산자가 유일합니다. 이 연산자는 특히 SwiftUI에서 매우 중요하게 사용됩니다. 💡
기본 구조는 다음과 같습니다.
Swift
Swift
let result = 조건 ? 참일_때의_값 : 거짓일_때의_값
- 조건을 먼저 평가합니다. (
?
앞부분) - 조건이 **
true
**이면 **참일_때의_값
**이 선택됩니다. (?
뒷부분) - 조건이 **
false
**이면 **거짓일_때의_값
**이 선택됩니다. (:
뒷부분)
헬스장에서의 개인 최고 기록(PR) 달성 여부에 따라 다른 메시지를 보여주는 예제를 살펴봅시다.
Swift
let benchPressPR = 100 // 개인 최고 기록(PR)은 100kg
let benchPressAttempt = 80 // 새로운 시도는 80kg
// 1. 조건: benchPressAttempt > benchPressPR (80 > 100) -> 결과는 false
// 2. 조건이 false이므로, 콜론(:) 뒤의 값이 message 상수에 할당됩니다.
let message = benchPressAttempt > benchPressPR
? "축하합니다! 최고 기록을 경신했습니다! 🎉"
: "기록을 넘지 못했습니다. 다음 기회에 다시 도전하세요. 💪"
print(message)
// 출력: "기록을 넘지 못했습니다. 다음 기회에 다시 도전하세요. 💪"
만약 benchPressAttempt
가 110
이었다면, 조건이 true
가 되어 축하 메시지가 출력되었을 것입니다.
지금 당장 삼항 연산자가 완벽하게 이해되지 않아도 괜찮습니다. 앞으로 SwiftUI를 배우면서 수많은 예제를 통해 자연스럽게 익숙해질 것입니다.