考虑以下代码:
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/