如何使用带 Swift 的步幅在循环中重置种子变量?

How to reset variable of seed on loop using stride with Swift?

我想使用带 Swift 的步幅在循环中重置变量(种子)。 我有这段代码在 C#

上完美运行
for (int i = 0; i <= 10; i++)
{
    //something
    i = 0;  //restart this value when necessary
}

我正在尝试 swift

for var i in stride(from: 0, to: 10, by: 1){
    //something
    i = 0;  //I need to reset this value when necessary, but not working
}

变量 "i" 更改了一秒钟,但随后 returns 变为原始值,行为与 C# 不同。

谢谢。

可以使用

var i = 0
while i <= 10 { 
 i += 1 
 // reset if necessary    
}

正如亚历山大的回应,你实际上要求做的事情是邪恶的。我倾向于认为 labeled do statement 也不会是您的最佳选择,但它是最简单的解决方案,无需再查看任何代码。

下面会打印 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

var condition = true

loopReset: do {
  for i in 0..<10 {
    if condition, i > 5 {
      condition = false
      continue loopReset
    }

    print(i)
  }
}