Exercice - Incrémenter et décrémenter des valeurs

Effectué

Les dernières opérations simples que vous allez découvrir dans ce module sont l’incrémentation et la décrémentation de valeurs à l’aide d’opérateurs spéciaux qui sont des combinaisons de symboles.

Incrémenter et décrémenter

Souvent, vous devez incrémenter et/ou décrémenter des valeurs, en particulier lorsque vous écrivez une logique de boucle ou du code qui interagit avec une structure de données.

L’opérateur += ajoute et assigne la valeur à droite de l’opérateur à la valeur à gauche de l’opérateur. Ainsi, les lignes deux et trois dans l’extrait de code suivant sont les mêmes :

int value = 0;     // value is now 0.
value = value + 5; // value is now 5.
value += 5;        // value is now 10.

L’opérateur ++ incrémente de 1 la valeur de la variable. Ainsi, les lignes deux et trois dans l’extrait de code suivant sont les mêmes :

int value = 0;     // value is now 0.
value = value + 1; // value is now 1.
value++;           // value is now 2.

Ces mêmes techniques peuvent être utilisées pour la soustraction, la multiplication, etc. Les étapes suivantes de l’exercice en mettent quelques-unes en lumière.

Notes

Les opérateurs comme +=, -=, *=, ++ et -- sont appelés opérateurs d’assignation composée parce qu’ils composent une opération en plus d’assigner le résultat à la variable. L’opérateur += est spécifiquement appelé opérateur d’assignation d’addition.

Écrire du code pour incrémenter et décrémenter une valeur

  1. Sélectionnez tout le code dans l’éditeur .NET, puis appuyez sur Supprimer ou Retour arrière pour le supprimer.

  2. Entrez le code suivant dans l’Éditeur .NET :

    int value = 1;
    
    value = value + 1;
    Console.WriteLine("First increment: " + value);
    
    value += 1;
    Console.WriteLine("Second increment: " + value);
    
    value++;
    Console.WriteLine("Third increment: " + value);
    
    value = value - 1;
    Console.WriteLine("First decrement: " + value);
    
    value -= 1;
    Console.WriteLine("Second decrement: " + value);
    
    value--;
    Console.WriteLine("Third decrement: " + value);
    
  3. Exécutez le code. Vous devez normalement voir la sortie suivante :

    First increment: 2
    Second increment: 3
    Third increment: 4
    First decrement: 3
    Second decrement: 2
    Third decrement: 1
    

Notes

Dans le « deuxième incrément », vous avez utilisé value += 1;. Cependant, vous auriez pu utiliser n’importe quelle valeur littérale int (ou une variable) pour incrémenter cette quantité. Il en est de même pour le « deuxième décrément » : value -= 1;.

Positionner les opérateurs d’incrémentation et de décrémentation

Les opérateurs d’incrémentation et de décrémentation ont une qualité intéressante : en fonction de leur position, ils effectuent leur opération avant ou après avoir récupéré leur valeur. En d’autres termes, si vous utilisez l’opérateur avant la valeur comme dans ++value, l’incrémentation se produit avant que la valeur ne soit récupérée. De même, value++ incrémente la valeur une fois que celle-ci a été récupérée.

Utiliser l’opérateur d’incrémentation avant et après la valeur

  1. Supprimez le code des étapes précédentes et entrez le code suivant dans l’éditeur .NET :

    int value = 1;
    value++;
    Console.WriteLine("First: " + value);
    Console.WriteLine($"Second: {value++}");
    Console.WriteLine("Third: " + value);
    Console.WriteLine("Fourth: " + (++value));
    
  2. Exécutez le code. Vous devez normalement voir la sortie suivante :

    First: 2
    Second: 2
    Third: 3
    Fourth: 4
    

Remarquez cette ligne de code :

Console.WriteLine($"Second: {value++}");

Il y a deux étapes dans cette ligne :

  1. Récupérez la valeur actuelle de la variable value et utilisez-la dans l’opération d’interpolation de chaîne.
  2. Incrémentez la valeur.

La ligne de code suivante confirme que la valeur a été, en fait, incrémentée.

Console.WriteLine("Third: " + value);

Par opposition, regardez la dernière ligne de code :

Console.WriteLine("Fourth: " + (++value));

Ici, l’ordre des opérations a changé parce que l’opérateur ++ est placé avant l’opérande value.

  1. Incrémentez la valeur.
  2. Récupérez la nouvelle valeur incrémentée de la variable value et utilisez-la dans l’opération de chaîne.

Même si ce n’est pas strictement nécessaire, vous avez ajouté des parenthèses autour de l’expression (++value) pour améliorer la lisibilité. Le fait de voir autant d’opérateurs + les uns après les autres pourrait être mal compris par d’autres développeurs. Les décisions stylistiques comme celles-ci sont subjectives. Toutefois, étant donné que vous allez écrire le code une seule fois et le lire très souvent, vous devriez faire de la lisibilité une priorité.

Récapitulatif

Voici ce que vous avez appris jusqu’à présent concernant les opérations mathématiques en C# :

  • Utilisez des opérateurs d’assignation composée comme +=, -=, *=, ++ et -- pour effectuer une opération mathématique telle qu’une incrémentation ou une décrémentation, puis assignez le résultat à la variable d’origine.
  • Les opérateurs d’incrémentation et de décrémentation fonctionnent différemment selon qu’ils se trouvent avant ou après l’opérande.