Ejercicio: Incremento y decremento de valores

Completado

Las operaciones básicas finales que conocerá en este módulo son cómo realizar incrementos y decrementos de valores con operadores especiales que son combinaciones de símbolos.

Incremento y decremento

Con frecuencia, tendremos que incrementar o disminuir los valores, especialmente cuando escribamos lógica de bucle o código que interactúe con una estructura de datos.

El operador += suma y asigna el valor situado a la derecha del operador al valor situado a la izquierda del operador. Por lo tanto, las líneas dos y tres del siguiente fragmento de código son las mismas:

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

El operador ++ incrementa el valor de la variable en 1. Por lo tanto, las líneas dos y tres del siguiente fragmento de código son las mismas:

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

Estas mismas técnicas se pueden usar en restas, multiplicaciones y otras muchas operaciones. En los siguientes pasos del ejercicio se resaltarán algunas.

Nota:

Los operadores como +=, -=, *=, ++ y -- se conocen como operadores de asignación compuesta porque realizan alguna operación además de asignar el resultado a la variable. El operador += se denomina específicamente operador de asignación de suma.

Escritura de código para aumentar y disminuir un valor

  1. Seleccione todo el código en el editor de .NET y presione la tecla Suprimir o Retroceso para eliminarlo.

  2. Escriba el siguiente código en el editor de .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. Ejecute el código. Debería ver la salida siguiente:

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

Nota

En el "segundo incremento", usamos value += 1;. Sin embargo, podríamos haber usado cualquier valor literal int (o una variable) para incrementar esa cantidad. Lo mismo se aplica al "segundo decremento": value -= 1;.

Colocación de los operadores de incremento y decremento

Los operadores de incremento y decremento tienen una cualidad interesante: según su posición, llevan a cabo la operación antes o después de recuperar el valor. En otras palabras, si usa el operador delante del valor como en ++value, el incremento se producirá antes de recuperar el valor. Del mismo modo, value++ incrementará el valor una vez recuperado.

Uso del operador de incremento antes y después del valor

  1. Elimine el código de los pasos anteriores y escriba el código siguiente en el editor de .NET:

    int value = 1;
    value++;
    Console.WriteLine("First: " + value);
    Console.WriteLine($"Second: {value++}");
    Console.WriteLine("Third: " + value);
    Console.WriteLine("Fourth: " + (++value));
    
  2. Ejecute el código. Debería ver la salida siguiente:

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

Observe esta línea de código:

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

Hay dos pasos en esta línea:

  1. Se recupera el valor actual de la variable value y se usa en la operación de interpolación de cadenas.
  2. Se incrementa el valor.

La siguiente línea de código confirma que el valor, de hecho, se incrementó.

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

En cambio, considere la última línea de código:

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

Aquí, el orden de las operaciones cambia porque el operador ++ se coloca delante del operando value.

  1. Se incrementa el valor.
  2. Se recupera el nuevo valor incrementado de la variable value y se usa en la operación de cadena.

Aunque no es estrictamente necesario, hemos agregado paréntesis alrededor de la expresión (++value) para mejorar la legibilidad. Ver tantos operadores + uno junto a otro parece que podría ser malinterpretado por otros desarrolladores. Las decisiones estilísticas como esta son subjetivas. Sin embargo, puesto que escribirá el código una vez pero lo leerá varias, debe dar prioridad a la legibilidad.

Resumen

Esto es lo que hemos aprendido hasta ahora sobre las operaciones matemáticas en C#:

  • Use operadores de asignación compuesta como +=, -=, *=, ++ y -- para realizar una operación matemática como un incremento o un decremento y asigne luego el resultado a la variable original.
  • Los operadores de incremento y decremento funcionan de manera diferente si el operador es anterior o posterior al operando.