Swift:退出嵌套循环,同时保持外部循环的索引

时间:2019-04-25 17:43:58

标签: swift for-loop

我对Swift还是很陌生,我敢肯定这是一个相对简单的问题。我有一个嵌套的for循环,在将数据附加到数组后,我想打破内部循环。下面是我的代码:

var_dump($data);

当前,break语句使我可以返回到 set 数组并检索下一项,但是,这会导致 reps weight 数组从头开始。如何防止这种情况发生,以便所有循环都检索第二个项目?

预先感谢

1 个答案:

答案 0 :(得分:3)

很难想象您的意图是什么(并且您还没有解释),所以我将给出两个带有两个不同答案的假设。 (请注意,这样做是要消除您的self.itemData并将其替换为局部变量。


也许您正在尝试同时遍历三个数组。为此,请使用zip并只需一个 for循环。

如果zip3本机存在,这会更容易;您可以编写它,但实际上没有必要:

let zippedArray = zip(setArray, zip(repsArray, weightArray))
for tuple in zippedArray {
    let set = tuple.0
    let reps = tuple.1.0
    let weight = tuple.1.1
    var itemData = "Set "
    itemData += set
    itemData += "  "
    itemData += reps
    itemData += " Reps  "
    itemData += "Weight "
    itemData += weight
    itemData += "kg"
    structSetArray.append(itemData)
}

但是,在现实生活中,最好是一个一个数组,其元素是具有三个属性的{em> struct (set,{{1 }}和reps)。


另一方面,可能是您试图遍历三个数组的所有所有组合 。在这种情况下,请将所有“打印”值移入最里面的循环,如下所示:

weight