You are currently viewing [Swift] 연산자의 종류 : 단항, 이항, 삼황
swift

[Swift] 연산자의 종류 : 단항, 이항, 삼황

연산자의 종류: 단항, 이항, 삼항

지금까지 우리가 봐온 연산자들은 작동하는 대상(target)의 수에 따라 세 가지 범주로 분류할 수 있습니다: 단항(unary), 이항(binary), 삼항(ternary) 연산자입니다.


1. 단항 연산자: 하나의 대상을 바꾸는 연산자

단항 연산자는 하나의 대상에만 작동합니다. 대표적인 예는 **논리 부정 연산자(!)**입니다.

이 연산자는 불리언(Bool) 값 하나를 대상으로 하여 그 값을 반전시킵니다 (truefalse로, falsetrue로).

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 = 조건 ? 참일_때의_값 : 거짓일_때의_값
  1. 조건을 먼저 평가합니다. (? 앞부분)
  2. 조건이 **true**이면 **참일_때의_값**이 선택됩니다. (? 뒷부분)
  3. 조건이 **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)
// 출력: "기록을 넘지 못했습니다. 다음 기회에 다시 도전하세요. 💪"

만약 benchPressAttempt110이었다면, 조건이 true가 되어 축하 메시지가 출력되었을 것입니다.

지금 당장 삼항 연산자가 완벽하게 이해되지 않아도 괜찮습니다. 앞으로 SwiftUI를 배우면서 수많은 예제를 통해 자연스럽게 익숙해질 것입니다.