如何在嵌套结构中打破外部循环,该结构响应Swift中的break
语句?
例如:
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
只会让我离开switch
,而在Swift中,它必须被用作空案例是不允许的。如何从switch
?
答案 0 :(得分:152)
Swift允许labeled statements。使用带标签的语句,无论嵌套循环的深度如何,您都可以指定要从哪个控制结构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
}
}
答案 1 :(得分:0)
将循环标记为“ outerLoop”,并在需要时中断用户标签:即在本例中,中断“ outerLoop”。
outerLoop: for indexValue in 0..<arr.count-1 {
if arr[indexValue] > arr[indexValue+1] {
break outerLoop
}
}