Ta logique est un peu trop vague : quand tu dis « je fais un bloc de 100 lignes », tu ne décomposes pas asez les étapes.
Tu vas devoir faire deux boucles : une « grande » pour les 1000 résultats, et une « petite » pour les 100 lignes de chaque bloc. La petite sera incluse dans la grande. Si on décompose étape par étape, ça donne un truc comme ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 1er tour de grande boucle:
(il reste 1000 résultats)
1er tour de petite boucle:
je traite un résultat, c'est le 1er de ce bloc, il en reste 99
fin du 1er tour de petite boucle
2e tour de petite boucle:
je traite un résultat, c'est le 2e du bloc, restent 98
fin du 2e tour de petite boucle
...
fin du 100e tour de petite boucle
j'ai un bloc de 100 lignes, je l'insère
fin du 1er tour de grande boucle
2e tour de grande boucle:
(il reste 900 résultats)
... petite boucle ...
j'insère le nouveau bloc
fin du 2e tour de grande boucle |
J'ai mis en gras des procédures qui restent à décomposer mais qui ne correspondent pas à ta question.
Pour s'y retrouver entre une boucle for et une boucle while, sache qu'elles font quasiment la même chose. La seule vraie différence c'est que la boucle for a un compteur intégré.
Les bonnes questions à se poser c'est :
- comment savoir quand les boucles doivent s'arrêter ? Est-ce qu'il faut un compteur ou pas ?
- de quoi j'ai besoin quand je suis à l'intérieur d'une boucle ? Quelles variables, quand les utiliser (avant/pendant/après la boucle), etc.
Si tu choisis une boucle for, le compteur est explicite :
1 2 3
| for (var i = 0; i < ...; i++) {
...
} |
Mais tu peux faire la même chose avec while :
1 2 3 4 5
| var i = 0;
while (i < ...) {
...
i++;
} |
Ça fait exactement la même chose. En fait, la boucle while est plus facile à comprendre car tu vois bien à quels moments les choses se font. Une boucle for n'est rien de plus qu'un while amélioré :
for (initialisation; condition; continuation) { ... }
- initialisation est exécutée une fois avant de commencer la boucle
- condition est vérifiée avant chaque tour de boucle, et si elle est fausse, on sort de la boucle
- continuation est exécutée après chaque tour de boucle.
J'espère que c'est plus clair pour toi maintenant
Partager