Comment créer une plage (range) en Kotlin qui compte en ordre inverse (du plus grand au plus petit) ?
Bonjour, collègues ! J'ai récemment commencé à apprendre Kotlin et j'ai rencontré un problème en travaillant avec les plages (ranges). Je dois parcourir les nombres de 10 à 1 dans une boucle for, c'est-à-dire en ordre inverse. J'ai essayé d'écrire ceci :
```kotlin
for (i in 10..1) {
println(i)
}
```
Mais ce code n'affiche rien ! Je m'attendais à voir les nombres 10, 9, 8... 1, mais la boucle ne s'exécute tout simplement pas. J'ai lu la documentation et j'ai compris que `10..1` crée une plage vide, car le pas par défaut est +1, et la valeur de départ est plus grande que la valeur de fin.
J'ai essayé d'utiliser `downTo` :
```kotlin
for (i in 10 downTo 1) {
println(i)
}
```
Cela a fonctionné ! Mais j'ai plusieurs questions :
1. Pourquoi `10..1` ne fonctionne-t-il pas, alors que `10 downTo 1` fonctionne ?
2. Puis-je créer une variable de plage qui stocke une séquence inverse, afin de l'utiliser plusieurs fois ?
3. Existe-t-il d'autres moyens de faire un parcours inverse, par exemple avec `reversed()` ou `step` ?
Expliquez-moi, s'il vous plaît, comment cela fonctionne correctement.
No answers yet.
Connectez-vous pour laisser une réponse