Esercizio - Incrementare e decrementare valori
Le ultime operazioni di base che verranno presentate in questo modulo sono l'incremento e il decremento di 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 ciclica 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. Le righe due e tre del frammento di codice seguente sono quindi uguali:
int value = 0; // value is now 0.
value = value + 5; // value is now 5.
value += 5; // value is now 10.
L'operatore ++
incrementa di 1 il valore della variabile. Le righe due e tre del frammento di codice seguente sono quindi uguali:
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 la sottrazione, la moltiplicazione e altro. I passaggi dell'esercizio seguenti ne dimostreranno alcuni.
Nota
Gli operatori +=
, -=
, *=
, ++
e --
sono noti come operatori di assegnazione composta perché eseguono un'operazione composta oltre ad assegnare il risultato a una variabile. L'operatore +=
è noto nello specifico come operatore di assegnazione di addizione.
Scrivere il codice per incrementare e decrementare un valore
Selezionare tutto il codice nell'editor .NET e quindi premere Canc o BACKSPACE per eliminarlo.
Immettere il codice seguente nell'editor .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);
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
Nota
Nel "secondo incremento" è stato usato value += 1;
. Si potrebbe comunque usare qualsiasi valore int
letterale (o una variabile) per incrementare tale quantità. Lo stesso vale per il secondo decremento: value -= 1;
.
Posizionamento degli operatori di incremento e decremento
Gli operatori di incremento e decremento hanno entrambi una qualità interessante: a seconda della loro 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 che il valore venga recuperato. Allo stesso modo, value++
incrementerà il valore dopo il recupero del valore.
Usare l'operatore di incremento prima e dopo il valore
Eliminare il codice dei passaggi precedenti e immettere il codice seguente nell'editor .NET:
int value = 1; value++; Console.WriteLine("First: " + value); Console.WriteLine($"Second: {value++}"); Console.WriteLine("Third: " + value); Console.WriteLine("Fourth: " + (++value));
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 include due passaggi:
- Recuperare il valore corrente della variabile
value
e usarlo nell'operazione di interpolazione di stringhe. - Incrementare il valore.
La riga di codice successiva conferma che il valore è stato effettivamente incrementato.
Console.WriteLine("Third: " + value);
Si consideri invece l'ultima riga di codice:
Console.WriteLine("Fourth: " + (++value));
In questo caso, l'ordine delle operazioni è invertito perché l'operatore ++
è posizionato prima dell'operando value
.
- Incrementare il valore.
- Recuperare il nuovo valore incrementato della variabile
value
e usarlo nell'operazione di stringhe.
Sebbene non sia strettamente necessario, l'espressione (++value)
è stata racchiusa tra parentesi per migliorare la leggibilità. La visualizzazione di così tanti operatori +
uno dopo l'altro potrebbe causare fraintendimenti da parte di altri sviluppatori. Le decisioni stilistiche come questa sono soggettive. Tuttavia, dato che il codice viene scritto una sola volta, ma letto molte volte, è consigliabile dare priorità alla 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 nella 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.