iOS/Swift

[Swift] 구문 레이블 (for문 중첩 제어)

유훈 | Yuhun 2022. 4. 2. 00:52
반응형

중첩된 for문을 처리할 때 불편한 점이 하위 for문에서 상위 for문을 중단시키기 위해선 변수도 더 선언해야 한다는 문제가 있었습니다.
근데 알고 보니 스위프트에는 좋은 기능이 있었는데 바로 "구문 레이블"입니다.

말 그대로 구문에 이름을 붙여 break나 continue 시킬 수 있는 기능입니다.

 

기본 문법은 이러합니다.

이름(레이블): <조건식(예를 들어 for문)> {
	//code...
}

 

코드를 보면 바로 이해가 되니 바로 예제를 보면

a for문이 있고 b for문을 만들었습니다.

그리고 b에서 j가 3이면 b를 포함해 a까지 break 되는 구문입니다.

a: for i in 0...5 {
    print("i: \(i)")
    
    b: for j in 0...5 {
        if j == 3 {break a}
        print("j: \(j)")
    }
}

 

기존에는 var check = false를 만들고 하위 for문에서 어떤 조건이면 check = true 하고 이런 식으로 구분했는데
위의 방법을 사용하면 코드도 간결하고 이해도 쉬워지는 효과를 얻을 수 있었습니다!

반응형