我尝试跳过随机条件,如果为true,则会跳过循环,但结果会打印所有元素0,1,2,3,4
我知道在Java中索引是否会增加索引会跳过,但这不会发生Swift。?
更新:这是我编写的某个程序的简化版本,print()
必须在每个循环后立即发生,并且索引仅在某些未知条件下递增,我希望它的行为类似于JAVA。 / p>
for var index in 0..<5 {
print(index)//this prints 0,1,2,3,4, this must happen right after for loop
if some unknown condition {
index+=1
}
}
答案 0 :(得分:23)
索引在循环中自动递增,您可以跳过带有where子句的索引:
for index in 0..<5 where index != 2 {
print(index)
}
答案 1 :(得分:19)
请尝试这个:
for var index in 0..<5 {
if index == 2 {
continue
}
print(index)//this prints 0,1,3,4
}
答案 2 :(得分:4)
这很有效。不确定这是否是最好的方法。
var skip = false
for var index in 0..<5 {
if (skip) {
skip = false
continue
}
print(index)
if index == 2 {
skip = true
}
}
答案 3 :(得分:2)
在你的for循环中:
for var index in 0..<5 {
if index != 2{
print(index)
}
}
答案 4 :(得分:1)
for var index in 0..<5 {
if index == 2 {
//dont do anything
}
else {
print(index)
}
}
难道不是那么简单吗?
答案 5 :(得分:0)
(0..<5).filter({$0 != 2}).forEach{ x in print(x)}
(或)当条件未知时,
(0..<5).filter(isNumber2).forEach{ x in print (x)}
注意: isNumber2
是一个外部函数,在评估数字上的条件后返回布尔值。您对此功能的实现可能会有所不同。
var isNumber2: (Int) -> (Bool) = { return $0 != 2}
答案 6 :(得分:0)
表示0中的索引。&lt; 5在哪里(在这里给出你的条件){ 打印(索引) }
如果条件是跳过索引3, 索引在0 ..&lt; 5其中index!= 3 { 打印(索引) }