아리의 iOS 탐구생활

[Swift] for each 와 for in의 차이점 본문

Swift/자료구조

[Swift] for each 와 for in의 차이점

Ari Lee 2021. 8. 3. 16:19
반응형
let arr = ["leeari", "ari", "lee"]

for i in arr {
    print(i)
}

arr.forEach { i in
    print(i)
}

 

 

 

두 반복문은 같은 결과물을 출력하지만 차이점이 존재한다.



✔️ 제어문의 영향

for i in arr {
    if i == "leeari" {
        continue
    }
    if i == "ari" {
        break
    }
}

arr.forEach{ i in
//    !!! error: only allowed inside a loop !!!
//    break
//    continue
}

for in문은 break과 contiue문을 사용하여 클로저를 탈출할 수 있지만, forEach는 이러한 제어문 사용이 불가능하다. 

forEach는 내가 반복하고 싶은 구문을 forEach라는 함수의 파라미터로 Closure로 작성하여 넘겨주기 때문이다.

 

 

 

 

 

 

✔️ return문의 영향

func loop() {
    let arr = ["leeari", "ari", "lee"]
    
    for i in arr {
        if i == "ari" {
            print(i)
            return
        }
    }
}
arr.forEach{ i in
    if i == "ari" {
        return print(i)
    }
    print(i)
}

forEach 문은 return문을 만나도 반복문의 횟수에 영향을 주지 않는다.

때문에 return 바로 종료되지 않고 다음 반복을 계속 진행한다.

 

 

 

 

 

✔️ Apple 공식문서 참고

 

 

Apple Developer Documentation

 

developer.apple.com

 

반응형
Comments