2014-06-05 36 views
56

Làm cách nào để ngắt vòng lặp bên ngoài từ bên trong một cấu trúc lồng nhau đáp ứng câu lệnh break trong Swift?Làm thế nào để phá vỡ vòng ngoài từ các cấu trúc bên trong đáp ứng ngắt (vòng/công tắc)

Ví dụ:

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

Các break sẽ chỉ làm cho tôi ra khỏi switch, và trong Swift, nó phải được sử dụng như trường hợp có sản phẩm nào không được phép. Làm cách nào tôi có thể thoát khỏi vòng lặp hoàn toàn từ bên trong switch?

Trả lời

116

Swift cho phép labeled statements. Sử dụng một câu lệnh có nhãn, bạn có thể chỉ định cấu trúc điều khiển nào bạn muốn break từ bất kể bạn lồng vòng sâu đến mức nào (mặc dù, nói chung, việc lồng ghép ít hơn là tốt hơn từ một quan điểm dễ đọc). Điều này cũng hoạt động cho continue.

Ví dụ:

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 
    } 
} 
Các vấn đề liên quan