如何跳过for-in循环的迭代(Swift 3)

时间:2016-12-07 03:52:49

标签: swift swift3 for-in-loop

是否可以在Swift 3中跳过for-in循环的迭代?

我想做这样的事情:

for index in 0..<100 {
    if someCondition(index) {
        index = index + 3 //Skip iterations here
    }
}

4 个答案:

答案 0 :(得分:9)

最简单的方法是在if条件

中使用continue
       for index in 1...100
       {
            if index == 5
            {
               continue
            }
        print(index)//1 2 3 4 6 7 8 9 10
        }

for index in 1...10 where index%2 == 0
{
  print(index)//2 4 6 8 10
}

答案 1 :(得分:5)

简单的while循环将

var index = 0

while (index < 100) {
    if someCondition(index) {
        index += 3 //Skip 3 iterations here
    } else {
        index += 1
        // anything here will not run if someCondition(index) is true
    }
}

答案 2 :(得分:1)

继续声明只会跳过一次,这不是要求的。

一个while循环将起作用,但是如果您不想使用它,则:

var skipToIndex = 0

for index in 0...100 {

    if index < skipToIndex {
        continue
    }

    if someCondition {
        skipToIndex = index + 3 //Skip three iterations
    }
}

答案 3 :(得分:-2)

无论是 for-in 的 .forEach,您始终拥有对当前评估项的引用。因此,如果您想继续迭代,您可以决定每个项目的基础。

let numbers = [1,2,3,4,5,6,7]

numbers.forEach {
    guard $0 != 3 else { return }
    print($0)
}

如果您的问题是指如何停止,请查看“中断”。如果实际问题是在找到特定项目时停止,请查看 .filter。