[swift] 제어문으로 값을 필터링하기

Swift에서 제어문을 사용하여 배열에서 특정 조건을 만족하는 값을 필터링할 수 있습니다. 이를 통해 배열 안에서 원하는 요소를 선택적으로 추출할 수 있습니다. 이번 글에서는 Swift의 if문과 for-in문을 활용하여 값 필터링을하는 방법을 알아보겠습니다.

1. if문을 사용한 값 필터링하기

if문은 조건식의 결과에 따라 특정 블록을 실행하거나 건너뛸 수 있습니다. 이를 활용하여 배열에서 조건을 만족하는 요소를 선택할 수 있습니다. 예를 들어, 정수 배열에서 짝수만 필터링해보겠습니다.

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var evenNumbers: [Int] = []

for number in numbers {
    if number % 2 == 0 {
        evenNumbers.append(number)
    }
}

print(evenNumbers) // [2, 4, 6, 8, 10]

위의 예제에서는 numbers 배열을 순회하면서 각 요소를 number 변수에 할당합니다. 그리고 if문을 사용하여 number가 짝수인 경우에만 evenNumbers 배열에 추가합니다. 마지막으로 evenNumbers 배열을 출력합니다.

2. for-in문과 guard문을 사용한 값 필터링하기

if문 대신 for-in문과 guard문을 사용하여 값 필터링을 할 수도 있습니다. guard문을 사용하면 조건을 만족하지 않는 경우 함수나 반복문을 종료할 수 있습니다. 이를 활용하여 배열에서 조건을 만족하는 요소를 더욱 간결하게 추출할 수 있습니다. 예를 들어, 문자열 배열에서 길이가 5 이상인 요소만 필터링해보겠습니다.

let names = ["Alice", "Bob", "Charlie", "David", "Eve"]
var longNames: [String] = []

for name in names {
    guard name.count >= 5 else {
        continue
    }
    
    longNames.append(name)
}

print(longNames) // ["Alice", "Charlie"]

위의 예제에서는 names 배열을 순회하면서 각 이름을 name 변수에 할당합니다. 그리고 guard문을 사용하여 name의 길이가 5 이상인 경우에만 반복문을 진행합니다. 조건을 만족하지 않으면 continue 키워드를 사용하여 다음 요소로 넘어갑니다. 마지막으로 longNames 배열을 출력합니다.

이처럼 Swift에서 제어문을 사용하여 배열에서 값을 필터링할 수 있습니다. 이를 활용하면 간단하게 원하는 조건을 만족하는 요소만을 추출할 수 있습니다.