swift - 你能告诉 for 循环有条件地前进不止一步吗?

标签 swift for-loop swift4 continue

考虑以下代码:

let value = "ABCDE"

for letter in value {
    print(letter)
}

这打印:

A
B
C
D
E

现在考虑假设的代码,当它找到“2”时,它会在循环中向前跳过 2。这是显示我要问的内容的伪代码...

let value = "AB2DE"

for letter in value {

    if letter == "2" {
        continue 2 <-- Does Swift support something similar to this?
    }

    print(letter)
}

上面的代码会让输出看起来像这样:

A
B
E

注意:当然,我可以通过管理跳过计数器轻松实现这一点,然后使用 continue,在我进行时递减计数器,或者,如果源支持下标,则与其他人一样建议我可以使用 while 循环来管理我自己的索引。有无数种方法可以解决这个假设的问题,但这不是我的问题的目的。

我的问题是专门找出语言本身是否支持一次跳过 for 循环的多次迭代(例如 continueMany继续 x).

最佳答案

不,您不能更改 for-in 循环在循环内迭代的方式。

在这种情况下,使用您自己的索引计数器的 while 循环可能是最简单的解决方案。尽管您可以在 for-in 循环中使用 sequence(first:next:)

关于swift - 你能告诉 for 循环有条件地前进不止一步吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211612/

相关文章:

ios - Root View Controller Swift

linux - 在日期范围 : bash script 上有效地使用 'for loop'

ios - 如何在 Swift 4 中使静态库模块化?

ios - 将数据从第二个 VC 传递到第一个 VC 并显示在文本字段 Swift4 中

swift - 自定义UITableView给出NSInternalInconsistencyException

arrays - 对数组排序两次,保存第一次排序并追加第二次排序

ios - 通过使用带有 ids 的排序 NSArray 来加速 for 循环

ios - AVPlayer 返回 nan 视频

swift - UITableViewController : Scrolling to bottom with dynamic row height starts animation at wrong position

javascript - 从没有 math.max 的嵌套数组中返回最大数