2016-11-26 2 views
0

Je fais face à un problème en exécutant pour la boucle dans Swift 3. Je peux utiliser la boucle pour l'opérateur de plage ... et ..< mais dans le cas, je veux quelque chose comme ..> mais ce n'est pas disponible. Comment est-ce que j'exécute la boucle suivante dans Swift 3?Opérateur de plage rapide pour i = mymax; i> = 0 i--

var myMax = 20 
for var i = myMax ; i >= 0 ; i -= 1 { 
    ... 
} 

Répondre

1

Il est facile d'inverser la boucle. Fonction utilisateur reversed.

Swift 3

let myMax = 20 
for i in (1..<myMax).reversed() { 
    print(i) 
} 

Vous pouvez également utiliser stride comme @ZaidPathan dit:

Cette question ont toutes les réponses avec toutes les versions: How to iterate for loop in reverse order in swift?

1
for i in (1..<20).reversed() { 
    print(i) 
} 

Hope it helps. Read More

0

Swift 3, vous pouvez utiliser stride

var myMax = 20 
for var i = myMax ; i > 0 ; i -= 1 { 

} 

//Equivalent 

let myMax = 20 
for value in stride(from: 20, to: 0, by: -1){ 
    print(value) 
} 


var myMax = 20 
for var i = myMax ; i >= 0 ; i -= 1 { 

} 

//Equivalent 

for value in stride(from: 20, through: 0, by: -1){ 
    print(value) 
}