Search code examples
swiftfor-loopdecrement

Decrement index in a loop after Swift C-style loops deprecated


How would you express a decrementing indexed loop in Swift 3.0, where the syntax below is not valid any more?

for var index = 10 ; index > 0; index-=1{
   print(index)
}

// 10 9 8 7 6 5 4 3 2 1

Solution

  • Here is an easier (and more Swifty) approach.

    for i in (0 ..< 5).reversed() {
        print(i) // 4,3,2,1,0
    }
    
    let array = ["a", "b", "c", "d", "e"]
    for element in array.reversed() {
        print(element) // e,d,c,b,a
    }
    
    array.reversed().forEach { print($0) } // e,d,c,b,a
    
    print(Array(array.reversed())) // e,d,c,b,a