在swift 2中循环的C风格

时间:2016-06-24 02:18:53

标签: swift for-loop

XCode告诉我以下for循环不会编译。我知道C风格循环在Swift 3中被删除了,但是我在这个项目中使用了Swift 2,所以它应该可以工作。

for (incrementor = 0; incrementor < someArray.count; incrementor += 1) {
    stuff in the for loop
}

3 个答案:

答案 0 :(得分:1)

您可以像这样编写一个C-Style for循环

for var i = 1; i <= someArray.count; i += 1 {
  print("i is equal to \(i)")
}

当您编写上述代码时,您会看到如下所示的警告,但正如您所说,您只是在测试某些东西,这样您就可以了。

enter image description here

答案 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)")
}