XCode告诉我以下for循环不会编译。我知道C风格循环在Swift 3中被删除了,但是我在这个项目中使用了Swift 2,所以它应该可以工作。
for (incrementor = 0; incrementor < someArray.count; incrementor += 1) {
stuff in the for loop
}
答案 0 :(得分:1)
您可以像这样编写一个C-Style for循环
for var i = 1; i <= someArray.count; i += 1 {
print("i is equal to \(i)")
}
当您编写上述代码时,您会看到如下所示的警告,但正如您所说,您只是在测试某些东西,这样您就可以了。
答案 1 :(得分:0)
(下面的代码应该是Swift 2.2和3兼容。虽然尚未经过测试。)
如果你想要一个带有增量的C风格for循环,你可以对整数使用stride
方法。例如:
for i in 10.stride(through: 50, by: 5) {
...
}
或
for i in stride(from: 10, through: 50, by: 5} {
...
}
(如果您需要&#34;最多但使用to
而不是through
,请排除&#34 ;.
如果您愿意,可以使用虚线范围表示法和where
语句:
for i in 10...50 where i % 5 == 0 {
...
}
或者只是用while循环替换整个东西:
var i = 10
while i <= 50 {
...
i += 5
}
答案 2 :(得分:0)
您可以通过以下方式执行c-style for循环,但它会给出一个警告,说明不推荐使用c-style for循环。我建议在stride
循环中使用where
函数或for x in y
选项。要使用旧样式,您可以这样做:
for var i = 1; i <= 10; i += 1 {
print("I'm number \(i)")
}