TIL: 범위 연산자 / 패턴 매칭 연산자

Royce·2025년 3월 11일

Swift 문법

목록 보기
8/63

범위 연산자

  • Swift에서 범위 연산자는 시작값과 끝값 사이의 연속적인 값을 표현할 때 사용하는 연산자이다
  • 주로 반복문이나 배열의 특정 구간에 접근할 때 유용하게 사용된다

종류 및 사용법

1. 폐쇄 범위 연산자 ... (닫힌 범위 연산자, Closed Range Operator)

  • 시작값과 끝값 모두 포함하는 범위를 나타낸다
1...5  // 정수 1부터 5 이하



for i in 1...5 {
	print(i)
}



let score = 75

switch score {
case 0...50:
    print("낙제")
case 51...80:
    print("합격")
case 81...100:
    print("우수")
default:
    print("잘못된 점수")
}

2. 반폐쇄 범위 연산자 ..< (반개방 범위 연산자, Half-Open Range Operator)

  • 시작값은 포함하지만, 끝값은 표함하지 않는 범위를 나타낸다
1..<5



for i in 1..<5 {
    print(i)
}



let age = 17

switch age {
case 0..<13:
    print("어린이")
case 13..<20:
    print("청소년")
case 20..<65:
    print("성인")
default:
    print("노년")
}

3. 한쪽 범위 연산자(One-Side Range)

  • 시작점이나 끝저 한 쪽만 지정하여 범위를 표현한다
1...    // 정수 1 이상
...10   // 정수 10 이하



let lowerBoundRange = 1...
if lowerBoundRange.contains(100) {
    print("100은 1 이상의 값입니다.")
}

let upperBoundRange = ...10
if upperBoundRange.contains(5) {
    print("5는 10 이하의 값입니다.")
}



let number = 42

switch number {
case ...10:
    print("10 이하")
case 11...30:
    print("11에서 30 사이")
case 31...:
    print("31 이상")
default:
    print("해당 없음")
}

패턴 매칭 연산자(Pattern Matching Operator)

  • 패턴 매칭 연산자 ~= 는 좌측의 패턴과 우측의 값을 비교하여, 값이 그 패턴에 부합하는지를 판단한다
a...b ~= age  // 오른쪽에 있는 표현식이 왼쪽의 범위에 포함되는 지에 따라 참과 거짓을 리턴



let number = 7

if 1...10 ~= number {
    print("\(number)은 1부터 10 사이에 있습니다.")
} else {
    print("\(number)은 1부터 10 사이에 있지 않습니다.")
}



let score = 85

switch score {
case 0..<50:        // 여기서 각 case는 내부적으로 ~= 연산자를 사용하여 score 값과 해당 범위 패턴을 비교한다
    print("낙제")
case 50..<80:
    print("합격")
case 80...100:
    print("우수")
default:
    print("잘못된 점수")
}
profile
iOS 개발자 지망생

0개의 댓글