Esercizio - Incrementare e decrementare i valori

Completato

Le operazioni di base finali illustrate in questo modulo illustrano come incrementare e decrementare i valori usando operatori speciali che sono combinazioni di simboli.

Incremento e decremento

Spesso è necessario incrementare e/o decrementare i valori, soprattutto quando si scrive logica di ciclo o codice che interagisce con una struttura di dati.

L'operatore += aggiunge e assegna il valore a destra dell'operatore al valore a sinistra dell'operatore. Di conseguenza, le righe due e tre nel frammento di codice seguente sono le stesse:

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

L'operatore ++ incrementa il valore della variabile di 1. Di conseguenza, le righe due e tre nel frammento di codice seguente sono le stesse:

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

Queste stesse tecniche possono essere usate per sottrazione, moltiplicazione e altro ancora. I passaggi seguenti dell'esercizio ne dimostreranno alcuni.

Annotazioni

Gli operatori come +=, -=*=, ++, e -- sono noti come operatori di assegnazione composta perché complicano alcune operazioni oltre ad assegnare il risultato alla variabile. L'operatore += è definito specificamente l'operatore di assegnazione per addizione.

Scrivere codice per incrementare e decrementare un valore

  1. Selezionare tutto il codice scritto in precedenza nell'editor di codice C# e premere Elimina o Backspace per eliminarlo.

  2. Immettere il codice seguente nell'editor di codice C#:

    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. Eseguire il codice. Verrà visualizzato l'output seguente:

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

Annotazioni

Nel "secondo incremento" è stato usato value += 1;. Tuttavia, è possibile usare qualsiasi valore letterale int (o una variabile) per incrementare tale quantità. Lo stesso vale per il "secondo decremento": value -= 1;.

Posizionare gli operatori di incremento e decremento

Sia gli operatori di incremento che di decremento hanno una qualità interessante, a seconda della posizione, eseguono l'operazione prima o dopo il recupero del valore. In altre parole, se si usa l'operatore prima del valore come in ++value, l'incremento verrà eseguito prima del recupero del valore. Analogamente, value++ incrementerà il valore dopo il recupero del valore.

Usare l'operatore di incremento prima e dopo il valore

  1. Eliminare il codice dai passaggi precedenti e immettere il codice seguente nell'editor di codice C#:

    int value = 1;
    value++;
    Console.WriteLine("First: " + value);
    Console.WriteLine($"Second: {value++}");
    Console.WriteLine("Third: " + value);
    Console.WriteLine("Fourth: " + (++value));
    
  2. Eseguire il codice. Verrà visualizzato l'output seguente:

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

Si noti questa riga di codice:

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

Questa riga prevede due passaggi:

  1. Recuperare il valore corrente della variabile value e usarlo nell'operazione di interpolazione di stringhe.
  2. Incrementare il valore.

La riga di codice successiva conferma che il valore è stato, in effetti, incrementato.

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

Al contrario, prendere in considerazione l'ultima riga di codice:

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

In questo caso, l'ordine delle operazioni viene modificato perché l'operatore ++ viene posizionato prima dell'operando value.

  1. Incrementare il valore.
  2. Recuperare il nuovo valore incrementato della variabile value e usarlo nell'operazione stringa.

Anche se non strettamente necessario, è stata aggiunta una parentesi intorno all'espressione (++value) per migliorare la leggibilità. La visualizzazione di così tanti operatori + uno dopo l'altro potrebbe causare fraintendimenti da parte di altri sviluppatori. Decisioni stilistiche come questa sono soggettive. Tuttavia, poiché si scriverà il codice una sola volta, ma lo si leggerà molte volte, è consigliabile classificare in ordine di priorità la leggibilità.

Riepilogo

Ecco quanto appreso finora sulle operazioni matematiche in C#:

  • Usare operatori di assegnazione composti come +=, -=*=, ++, e -- per eseguire un'operazione matematica come incremento o decremento, quindi assegnare il risultato alla variabile originale.
  • Gli operatori di incremento e decremento vengono eseguiti in modo diverso a seconda che l'operatore sia posizionato prima o dopo l'operando.