2014-06-05 9 views
56

Jak złamię zewnętrzną pętlę od wewnątrz zagnieżdżonej struktury, która odpowiada na rachunku w Swift break?Jak złamać pętle zewnętrzne od wewnętrznych struktur, które odpowiadają przerwę (pętle/switch)

Na przykład:

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 dostanie tylko mnie z switch iw Swift, musi być stosowany jako pusty przypadki nie są dozwolone. Jak mogę całkowicie opuścić pętlę z poziomu switch?

Odpowiedz

116

Swift pozwala na labeled statements. Z użyciem znakowanego oświadczenie, które można określić, która struktura kontrolować chcesz break od bez względu na to, jak głęboko you gniazdo twoje pętle (choć na ogół mniej zagnieżdżanie jest lepsza z punktu widzenia czytelności). Działa to również dla continue.

przykład:

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 
    } 
}