67 votes

Pourquoi utiliser une boucle for au lieu d'une boucle while?

Doublons Possibles:
Itérer avec une boucle for ou une boucle while?
Les boucles en C - () ou while() - qui est le MEILLEUR?

Quand doit-on utiliser un for boucle au lieu d'un while boucle?

Je pense que le suivant, les boucles sont identiques, à l'exception de leur syntaxe. Si oui, alors pourquoi choisir l'un plutôt que l'autre?

int i;
for (i = 0; i < arr.length; i++) {
  // do work
}

int i = 0;
while (i < arr.length) {
  // do work
  i++;
}

102voto

jjnguy Points 62123

Dans votre cas, vous n'avez pas gain de beaucoup plus un de moins de ligne de code dans l' for boucle.

Toutefois, si vous déclarez la boucle comme ceci:

for(int i = 0; i < x; i++)

Vous parvenez à conserver i dans le champ d'application de la boucle, au lieu de le laisser s'échapper vers le reste du code.

Aussi, dans une boucle while, vous avez la déclaration de la variable, la condition, et l'incrément dans 3 endroits différents. Avec la boucle for, il est tout en un pratique, facile-à-lire.

Dernière pensée:
Une note plus importante. Il y a une différence sémantique entre les deux. Tandis que les boucles, en général, sont destinés à avoir un nombre infini d'itérations. (ie. jusqu'à ce que le fichier a été lu..peu importe le nombre de lignes), et pour les boucles devraient avoir un plus certain nombre d'itérations. (boucle sur tous les éléments d'une collection, qui on peut compter, selon la taille de la collection.)

85voto

Reed Copsey Points 315315

Il y a une raison de choisir for sur while : lisibilité.

En utilisant une boucle for , vous indiquez explicitement que votre intention est d'effectuer un type d'opération nécessitant une initialisation, une opération "étape" et une condition d'achèvement.

Avec while , par contre, vous dites seulement que vous avez besoin de la condition d'achèvement.

36voto

Otávio Décio Points 44200

J'utilise 'while' lorsque je n'ai pas nécessairement besoin d'un compteur, par exemple lorsque vous lisez un fichier et que vous attendez d'atteindre EOF. Dans ce cas, "pour" peut ne pas être la meilleure alternative. Lorsque vous parcourez les éléments d'un tableau, je préfère utiliser «pour», car il traduit mieux l'intention.

27voto

supercat Points 25534

La différence notable entre une boucle for () et une boucle while () est la suivante: une instruction "continue" dans une boucle while () se branche en haut de la boucle, tandis qu'une dans une boucle for () passe à la troisième partie de la clause for () [celle qui suit la condition, habituellement utilisée pour renverser des variables].

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X