В цикле for вы не можете переходить по индексу в реальном времени, то есть если вы обнаружите, что после запуска цикла вам нужно пропустить итерацию, вы не сможете. Но вы можете выйти из итерации с continue
. Так, например:
var skip = 0
for i in 1...5 {
if i < skip { continue }
print(i)
if i == 2 { skip = 4}
}
Однако в такой ситуации вы могли бы быть счастливее с помощью цикла while.
var i = 1
while i <= 5 {
print(i)
i += 1
if i == 3 { i = 4 }
}
Другая возможность - развернуть цикл for в цикл while:
var r = (1...5).makeIterator()
while let i = r.next() {
print(i)
if i == 2 { r.next() }
}
Все это способы печати 1,2,4,5
.