Pré-décrémentation

Définition, exemples et bonnes pratiques

À retenir

  • Le symbole utilisé est généralement -- placé devant la variable (ex: --i).
  • La soustraction de 1 est prioritaire sur le reste de l'instruction.
  • Elle se distingue de la post-décrémentation (i--) qui utilise la valeur actuelle avant de la diminuer.

La pré-décrémentation est une opération mathématique simple en programmation qui consiste à retirer 1 à la valeur d'une variable avant que celle-ci ne soit utilisée dans une instruction. C'est comme si vous enleviez un étage à un ascenseur avant de décider à quel niveau vous vous arrêtez : vous agissez d'abord sur l'outil, puis vous lisez le résultat.

Étymologie

Le terme est composé du préfixe pré- (avant) et de décrémentation (action de diminuer). C'est un calque de l'anglais pre-decrement. Le mot décrémentation trouve sa racine dans le latin decrementum, signifiant diminution ou décroissance.

Exemples d'usage

  • En langage C ou JavaScript, si on écrit resultat = --x; avec x valant 5, x devient 4 et resultat reçoit la valeur 4.
  • Dans une boucle while (--compteur >= 0), le programme diminue le compteur d'une unité avant de vérifier s'il est toujours supérieur ou égal à zéro.

Cas d'usage

On l'utilise principalement dans les boucles pour gérer des comptes à rebours, lors de la manipulation d'index dans des tableaux, ou pour gérer des piles de données (stacks) où l'on doit reculer d'une position avant d'accéder à l'élément précédent.

Bonnes pratiques

Il est recommandé d'utiliser la pré-décrémentation avec prudence dans des expressions complexes, car mélanger plusieurs opérations de modification sur une même ligne peut rendre le code difficile à lire et provoquer des erreurs subtiles. Si la clarté est prioritaire, il est parfois préférable d'isoler la soustraction sur sa propre ligne.

Synonymes

décrémentation préfixée soustraction unitaire préalable

Antonymes

post-décrémentation pré-incrémentation

Conseil

Pour bien comprendre, mémorisez l'ordre de lecture : quand vous voyez -- en premier, l'action de diminuer se fait en premier. C'est un excellent moyen de gagner une ligne de code, mais ne l'utilisez que si cela ne nuit pas à la compréhension de votre programme par d'autres développeurs.

Questions fréquentes

Quelle est la différence avec i-- ?

Avec --i (pré), on retire 1 puis on utilise la valeur. Avec i-- (post), on utilise la valeur actuelle puis on retire 1.

Est-ce que cela fonctionne avec des nombres à virgule ?

Dans la plupart des langages modernes comme JavaScript ou C#, oui, cela retire 1.0 à la valeur flottante.

Est-ce plus rapide que de faire i = i - 1 ?

Historiquement, sur certains processeurs anciens, c'était plus rapide. Aujourd'hui, les compilateurs optimisent les deux de la même manière.