Menu
Coddy logo textTech

Post-incremento/Post-decremento

Fa parte della sezione Fondamenti del percorso C++ di Coddy. Lezione 19 di 74.

Nella lezione precedente abbiamo trattato gli operatori di incremento (++) e decremento (--). Questi operatori hanno due forme: prefissa e postfissa.

La forma prefissa si scrive prima della variabile (ad es., ++x o --x), mentre la forma postfissa si scrive dopo la variabile (ad es., x++ o x--).

Sapere quale forma usare è importante nella pratica. Per esempio, in un gioco potresti tenere traccia del punteggio di un giocatore con score++ dopo ogni colpo, oppure usare --lives per riflettere immediatamente una vita persa prima di verificare se la partita è finita. Nei cicli, la scelta tra prefisso e postfisso può influire sul valore usato in un'espressione prima o dopo l'aggiornamento.

La differenza tra le due forme è sottile ma importante:

  • Forma prefissa: incrementa/decrementa la variabile e poi restituisce il nuovo valore.
  • Forma postfissa: restituisce il valore corrente della variabile e poi la incrementa/decrementa.

Ecco un esempio per illustrare la differenza:

int x = 5;
int y = x++;
// y = 5, x = 6 (postfisso: y riceve il valore originale, poi x viene incrementato)

int a = 5;
int b = ++a;
// b = 6, a = 6 (prefisso: prima viene incrementato a, poi b riceve il nuovo valore)

Nel primo caso, a y viene assegnato il valore originale di x (5), quindi x viene incrementato a 6. Nel secondo caso, a viene incrementato per primo, quindi il suo nuovo valore (6) viene assegnato a b.

La stessa logica si applica all'operatore di decremento:

int x = 5;
int y = x--;
// y = 5, x = 4 (postfisso: y riceve il valore originale, poi x viene decrementato)

int a = 5;
int b = --a;
// b = 4, a = 4 (prefisso: a viene decrementato prima, poi b riceve il nuovo valore)
challenge icon

Sfida

Principiante

Ti viene fornito del codice con le inizializzazioni di x, y e z. (Non eliminare queste righe!)

Il tuo compito è usare gli operatori di incremento/decremento per eseguire le seguenti operazioni, in quest'ordine:

  1. Usa l'operatore di incremento postfisso per assegnare il valore corrente di x a a e poi incrementare x.
  2. Usa l'operatore di decremento prefisso per decrementare y e assegnare il suo nuovo valore a b.
  3. Usa l'operatore di decremento postfisso per assegnare il valore corrente di z a c e poi decrementare z.

Dopo aver eseguito queste operazioni, stampa i valori di a, b, c, x, y e z nella console nel seguente formato:

a: [value of a]
b: [value of b]
c: [value of c]
x: [value of x]
y: [value of y]
z: [value of z]

Provalo tu

#include <iostream>

int main() {
    int x = 10;
    int y = 20;
    int z = 30;
    
    int a, b, c;
    
    // Type your code below
    
    
    // Don't change the lines below
    std::cout << "a: " << a << std::endl;
    std::cout << "b: " << b << std::endl;
    std::cout << "c: " << c << std::endl;
    std::cout << "x: " << x << std::endl;
    std::cout << "y: " << y << std::endl;
    std::cout << "z: " << z << std::endl;
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore C++ online