++ antes y ++ después en Java: Operador de incremento

Published: (December 27, 2025 at 11:50 AM EST)
2 min read
Source: Dev.to

Source: Dev.to

Introducción

El operador ++ no es solo para sumar. En Java, el pre‑incremento y el post‑incremento pueden cambiar lo que tu código devuelve, no solo lo que guarda. El problema aparece cuando el incremento ocurre dentro de una expresión o al pasar el valor a un índice o a un método. A simple vista parece trivial, pero puede romper la lógica de un bucle o una llamada si confundes el momento en que se incrementa y se usa el valor.

  • Pre‑incremento (++x): incrementa y devuelve el valor nuevo.
  • Post‑incremento (x++): devuelve el valor actual y luego lo incrementa.

En bucles o en llamadas, elegir uno cambia el comportamiento. Si necesitas el valor ya incrementado para la operación siguiente, usa ++x; si necesitas el valor tal como está antes de incrementar, usa x++.

Ejemplo

public class IncrementDemo {
    public static void main(String[] args) {
        int a = 1, b = ++a; // a=2, b=2
        int c = 1, d = c++;   // c=2, d=1
        System.out.println(a + " " + b + " | " + c + " " + d);
    }
}

Este tipo de diferencias se ve a menudo cuando el incremento está ligado a una operación de índice o a la entrega de un valor a un método. Un mal uso puede hacer que la condición de un bucle se cumpla una iteración más o que un elemento se procese con el índice equivocado.

Acción recomendada

  1. Revisa al menos dos lugares en tu base de código donde utilices x++ para obtener el valor que se pasa a una próxima operación o a un índice.
  2. Cambia esos casos a ++x cuando el valor incrementado debe usarse inmediatamente.
  3. Agrega una pequeña prueba que compare el comportamiento con ambas variantes.
  4. Si no hay pruebas, escribe una de unidad que verifique explícitamente la diferencia entre pre y post en un escenario de contador o índice.
Back to Blog

Related posts

Read more »

My TicketDesk System

Intro For my Intro to Programming module, I made a TicketDesk system in Java that can: - Track tickets - Track login information - Provide a role‑based authent...