Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何从响应中断(环路/开关)的内部结构中断外部环路_Loops_Nested Loops_Swift - Fatal编程技术网

Loops 如何从响应中断(环路/开关)的内部结构中断外部环路

Loops 如何从响应中断(环路/开关)的内部结构中断外部环路,loops,nested-loops,swift,Loops,Nested Loops,Swift,如何从响应Swift中的break语句的嵌套结构中断开外部循环 例如: while someCondition { if someOtherCondition { switch (someValue) { case 0: // do something case 1: // exit loop case 2...5: // do something else d

如何从响应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
    }
}
中断
只会使我脱离
开关
,在Swift中,它必须被使用,因为不允许使用空箱子。如何从
开关中完全退出循环?

Swift允许。使用带标签的语句,您可以指定要从哪个控制结构
中断
,而不管您嵌套循环的深度有多深(尽管从可读性的角度来看,嵌套越少越好)。这也适用于
继续

例如:

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

将循环标记为outerLoop,并在需要时使用break标签:即在我们的例子中使用break outerLoop

outerLoop: for indexValue in 0..<arr.count-1 {
            if arr[indexValue] > arr[indexValue+1] {
                break outerLoop
            } 
        } 
outerLoop:用于0中的indexValue。。arr[索引值+1]{
断开外环
} 
}