브레이크 (루프 / 스위치)에 응답하는 내부 구조에서 외부 루프를 끊는 방법


78

breakSwift 의 명령문에 응답하는 중첩 구조 내에서 외부 루프를 끊는 방법은 무엇입니까?

예를 들면 :

while someCondition {
    if someOtherCondition {
        switch (someValue) {
            case 0:     // do something
            case 1:     // exit loop
            case 2...5: // do something else
            default:    break
        }
    } else {
        someCondition = false
    }
}

break나를 빠져 나갈 뿐이며 switchSwift에서는 빈 케이스가 허용되지 않으므로 사용해야합니다. 내에서 루프를 완전히 종료하려면 어떻게해야 switch합니까?

답변:


165

Swift는 레이블이있는 명령문을 허용 합니다 . 레이블이 지정된 문을 사용하면 break루프를 얼마나 깊게 중첩하든 상관없이 원하는 제어 구조를 지정할 수 있습니다 (일반적으로 가독성 관점에서는 중첩이 적을수록 좋습니다). 이것은 continue.

예:

outerLoop: while someCondition {
    if someOtherCondition {
        switch (someValue) {
            case 0:     // do something
            case 1:     break outerLoop // exit loop
            case 2...5: // do something else
            default:    break
        }
    } else {
        someCondition = false
    }
}

2

루프를 outerLoop으로 레이블을 지정하고 필요할 때마다 사용자 break Label : 즉, 우리의 경우 outerLoop을 중단합니다.

outerLoop: for indexValue in 0..<arr.count-1 {
            if arr[indexValue] > arr[indexValue+1] {
                break outerLoop
            } 
        } 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.