while let 구문
기본 구조
while let constantName = optionalExpression {
// 반복할 코드
}
// constantName: 옵셔널 값을 안전하게 언래핑한 값을 담을 상수
// optionalExpression: 옵셔널 값을 반환하는 표현식
// 옵셔널 값이 nil이 아니면 블록 내부의 코드가 실행된다.
// 반복이 시작될 때마다 옵셔널 값이 다시 평가된다.
Swift
복사
예제 코드
var optionalNumbers: [Int?] = [1, 2, nil, 4, nil, 6]
while let number = optionalNumbers.first {
optionalNumbers.removeFirst()
if let unwrappedNumber = number {
print("Number: \(unwrappedNumber)")
else {
print("Nil encountered")
}
}
// 옵셔널 배열 optionalNumbers에서 요소를 하나씩 제거하고, 그 값이 nil이 아닌 경우 출력한다.
// optionalNumbers.first가 nil이 되면 반복 종료
Swift
복사
옵셔널 바인딩?
옵셔널 바인딩은 옵셔널 값이 nil이 아닌 경우 해당 값을 안전하게 언래핑하여 사용할 수 있도록 하는 방법이다.
•
if let 과 guard let 구문에서 사용된다.
if let 과 차이점
•
if let 은 조건문 내에서 한 번 옵셔널 값을 검사하고, 값이 존재하면 블록 내부 코드를 실행한다.
•
while let 은 루프가 반복될 때마다 옵셔널 값을 검사하고, 값이 존재하면 블록 내부 코드를 반복해서 실행한다.