11 votes

Pourquoi les gens utilisent-ils i = i + 1 au lieu de i++ ?

J'ai vu cela dans un certain nombre de boucles et d'incréments. Au lieu de faire i++, ils font i += 1. Pourquoi cela ?

15voto

Daniel A. White Points 91889

Préférence et style personnels.

10voto

SoapBox Points 14183

Toutes les langues n'ont pas ++ opérateur (python, par exemple)... Ces personnes sont probablement issues d'une formation dans l'un de ces langages. De plus, certaines personnes pensent que i++ n'est pas très clair, d'autant plus que certaines langues traitent i++ y ++i différemment.

3voto

Randomblue Points 15049

Empêche l'excès d'astuce. C'est du moins ce que dit Crockford.

3voto

Nat Points 958

La raison générale est qu'il existe deux versions différentes de l'incrément qui se comportent différemment

var i = 0;
1 == ++i // true

y

var i = 0;
1 == i++; // false

++i se traduit par " incrémenter i, puis évaluer " tandis que i++ se traduit par " évalue i, puis incrémente "

Lorsque vous écrivez ces expressions sous la forme i = i + 1; l'intention du programmeur est claire et il est plus facile de trouver des bogues dans le code. C'est la même raison pour laquelle les gens écrivent " clauses yoda "comme

if(6 == x){
    //. . .
}

parce que si vous faites accidentellement

if(6 = x){
    //. . .
}

c'est plus facile d'attraper l'erreur

2voto

Michael Bray Points 7397

i = i + 1 est plus facile à décoder en anglais. i++ bien que totalement correct ne se traduit pas bien lorsque les débutants lisent le code. Le programmeur a peut-être essayé de rendre son code plus lisible pour les débutants, ou peut-être simplement de ne pas se préoccuper outre mesure de la syntaxe. Il n'y a pas de bon raison d'utiliser l'un plutôt que l'autre.

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