Menu
Coddy logo textTech

Post-incremento/decremento

Parte de la sección Fundamentos del Journey de C++ de Coddy. Lección 19 de 74.

En la lección anterior, vimos los operadores de incremento (++) y decremento (--). Estos operadores tienen dos formas: prefija y postfija.

La forma prefija se escribe antes de la variable (por ejemplo, ++x o --x), y la forma posfija se escribe después de la variable (por ejemplo, x++ o x--).

Saber qué forma usar es importante en la práctica. Por ejemplo, en un juego podrías llevar la cuenta de la puntuación de un jugador con score++ después de cada impacto, o usar --lives para reflejar inmediatamente una vida perdida antes de comprobar si la partida ha terminado. En los bucles, elegir entre el prefijo y el posfijo puede afectar al valor que se utiliza en una expresión antes o después de la actualización.

La diferencia entre las dos formas es sutil, pero importante:

  • Forma prefija: incrementa/decrementa la variable y después devuelve el nuevo valor.
  • Forma posfija: devuelve el valor actual de la variable y después la incrementa/decrementa.

Aquí tienes un ejemplo para ilustrar la diferencia:

int x = 5;
int y = x++;
// y = 5, x = 6 (postfijo: y obtiene el valor original, luego x se incrementa)

int a = 5;
int b = ++a;
// b = 6, a = 6 (prefijo: a se incrementa primero, luego b obtiene el nuevo valor)

En el primer caso, a y se le asigna el valor original de x (5), y después x se incrementa a 6. En el segundo caso, a se incrementa primero, y después su nuevo valor (6) se asigna a b.

La misma lógica se aplica al operador de decremento:

int x = 5;
int y = x--;
// y = 5, x = 4 (postfijo: y obtiene el valor original, luego x se decrementa)

int a = 5;
int b = --a;
// b = 4, a = 4 (prefijo: a se decrementa primero, luego b obtiene el nuevo valor)
challenge icon

Desafío

Principiante

Se te proporciona un código con inicializaciones de x, y y z. (¡No elimines estas líneas!)

Tu tarea es usar los operadores de incremento/decremento para realizar las siguientes operaciones, en este orden:

  1. Usa el operador de incremento posfijo para asignar el valor actual de x a a y después incrementar x.
  2. Usa el operador de decremento prefijo para decrementar y y asignar su nuevo valor a b.
  3. Usa el operador de decremento posfijo para asignar el valor actual de z a c y después decrementar z.

Después de realizar estas operaciones, imprime los valores de a, b, c, x, y y z en la consola con el siguiente 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]

Pruébalo tú mismo

#include <iostream>

int main() {
    int x = 10;
    int y = 20;
    int z = 30;
    
    int a, b, c;
    
    // Escribe tu código debajo
    
    
    // No cambies las líneas de abajo
    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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de C++ online