Incrémentons !
Posté le 08. Avril 2022 • 2 minutes • 257 mots • Autres langues: English
En développement informatique, une notion de base présente dans tous les langages ou presque est l’incrémentation et son contraire la décrémentation. Pour les non initiés, il s’agit d’ajouter 1 ou de retirer 1 à une variable en utilisant un opérateur spécifique qui est généralement :
++
: pour l’incrémentation--
: pour la décrémentation
Par exemple, en JS :
let x = 1;
x++; //x++ revient à faire x + 1
Mais bien que cette notion et son opérateur soient connus de tout le monde, plus rares sont les personnes qui ont identifié qu’il y avait en réalité deux notions :
- La post-incrémentation
- La pré-incrémentation
Alors quelle est la différence ? Et bien, la différence sera la valeur retour ! Dans le cas de la pré-incrémentation, la valeur retournée sera celle avant incrémentation. Concrètement cela donne :
- Post-incrémentation :
y = x++
revient ày = x ; x = x + 1
- Pré-incrémentation :
y = ++x
revient àx = x + 1 ; y = x
Vérifions cela en JS…
- Post-incrémentation :
- Pré-incrémentation
Un exemple plus concret ? Prenons ce bout de code qui vous affiche un compteur, si vous faites un post-incrément sur la variable secondes
vous obtenez une boucle infinie… avec un pré-incrément, votre programme fonctionnera :
function timer(secondes) {
if (secondes > 0) {
console.log(secondes);
timer(--secondes);
}
}
timer(10);
- Post-incrément générant une boucle infinie :
function timer(secondes) {
if (secondes > 0) {
console.log(secondes);
timer(secondes--);
}
}
timer(10);
Si ça vous intéresse, ces notations nous viennent directement des mathématiques : Wikipedia