更新另一个内部的步幅循环的索引

时间:2018-11-16 03:43:50

标签: swift loops

由于计算的复杂性,我不得不更新多个for loops中的索引。

所以

for index in stride(from: 0, to: data.count, by: 1)
   .....
   .....

    for i in stride(from: index, to: data.count, by: 1)
        .....
        index=i ; break;  //update index and break inner loop so next outer for loop iteration will start from a new index.

因此,外循环现在将跳至新值。

无法在循环中使用"where",因为内部循环中的条件取决于太多因素。 (不只是i != 2的地方)

  1. 我会得到一个让索引被释放的错误
  2. 这是不好的做法吗?

1 个答案:

答案 0 :(得分:1)

您可以通过用while代替第一步来实现。

var index = 0

while index < data.count {
    .....
    .....
    index += 1
    for i in stride(from: index-1, to: data.count, by: 1) {
        .....
        index=i 
        break
    }
}