pour () ou tandis que () - ce qui est le mieux?
i=1; while (i<a) { /* do something */ i++; }
4 Réponses :
Le premier est la manière idiomatique; C'est ce que la plupart des codeurs C m'attendent à voir. Cependant, je dois noter que la plupart des gens s'attendent également à voir
FILE *fp; for(fp = fopen(path, "r"); fgets(buf, max, fp) != NULL; ) { /* something */ }
Lequel a le plus de sens dans la situation. P>
Le Le Bien sûr, ce n'est pas une règle et les programmeurs font généralement comme ils le voient, mais cela facilite la lecture d'un code sans avoir à reconvertir une certaine section. P> pour code> La boucle vous indique que c'est probablement une boucle de comptage fixe. À partir de 1 fin avant un. P>
tandis que code> boucle n'implique aucune chose, juste que cela se termine une fois
i> = a code> (au moins de simplement lire le
alors que (i en haut). p>
Cela dépend. Ce qui rend la lecture la plus facile devrait être une directive IMHO. Si vous connaissez les limites au préalable, vous devez probablement utiliser «pour». Parce que cela dit clairement dans une ligne où la boucle commence, il se termine et comment aller d'un élément à l'autre. P>
VOTEZ UP POUR DAN MCG - Si la boucle a un nombre fixe, etc., utilisez pour - c'est plus idiomatique. Cas classiques de chacun: vs. P> aussi: Si vous vous trouvez quittant les conditions de votre part, considérez ce qu'elle serait Soyez comme si vous vous le répésiez comme un moment. P> À la fin de la journée: Retournez et lisez chaque version de la boucle. Lequel se distingue davantage dans votre esprit comme "clair" en intention? p> p>
Dépend. Avez-vous
continuer; code> dans le cadre de
/ * faire quelque chose * / code>? Ensuite, les boucles ne font même pas la même chose.
Meilleur dans quel sens?
C'est sûrement la définition d'une question de subjective i> subjective.
@Pavium: Pas vraiment; La communauté a des idiomes standard et des meilleures pratiques.
@Jason, eh bien je peux voir que ce n'était pas argumentatif (et personne n'a voté pour le fermer).
Si vous n'avez que deux idiomes, vous ne pouvez pas avoir le meilleur, seulement un meilleur :)