Operador de incremento, decremento y terciario
Saludos a todos!
Una vez más les presento un post de programación con el lenguaje Java.
Además de los operadores ya conocidos (aritméticos, relacionales y lógicos), existen en Java tres operadores importantes que pueden asistirnos a resolver los problemas de una manera más rápida y elegante.
Operadores de incremento y decremento.
Java tiene un operador que permite abreviar la tan necesaria instrucción de incrementar o decrementar una variable en 1, y es a través del uso de los operadores ++ (para incrementar) y — (para decrementar).
En la figuras 1 y 2 puedes observar un ejemplo de cada uno de estos operadores.

Figura 1. Operador ++

Figura 2. Operador —
Como se observa, el operador ++ incrementa en 1 el valor actual de la variable. De esta forma, las instrucciones de la línea1 y 2 son equivalentes.
x = x + 1; x++;
A su vez, el operador — decrementa en 1 el valor actual de la variable, haciendo equivalente las siguientes instrucciones:
x = x - 1; x--;
¿Antes o después de la variable?
Estos operadores se consideran unarios porque sólo requieren un operando para ejecutarse. Además, pueden utilizarse como prefijo o sufijo del operando, esto es, pueden escribirse antes de la variable o después de la variable, pero esto cambia la forma en que se aplican.
Considera la figura 3.

Figura 3. Operador incremento usado como sufijo
En este ejemplo, se declaran las variables k y j como enteras, y a k se le inicializa con 0. La siguiente línea le asigna valor a j. Al encontrarse el operador ++ después de la variable k le indica a Java que primero debe tomar el valor actual de k (0) y asignárselo a j. Posteriormente debe incrementar el valor de k en 1. (Usa primero, incrementa después) De esta forma, el resultado es:
j = 0
k = 1
Ahora observa la figura 4.

Figura 4. Operador incremento usado como prefijo
Nuevamente se declaran las variables k y j como enteras, y a k se le inicializa con 0. Pero ahora el operador ++ se encuentra antes de la variable k. Esto implica que ahora se debe “incrementar primero y usar después”. Por lo tanto, la expresión j = k++ usa al valor de k DESPUÉS de incrementar, lo que hace que k = 1, y después es asignado este nuevo valor a j. De tal forma que al terminar la ejecución del código se tiene:
j=1
k = 1
Estos operadores también se usan en combinación con todos los operadores aritméticos de Java. Por ejemplo, considera la siguiente instrucción:
z = ++x + w;
Para resolver esta instrucción, consideremos que x=2 y w = 6. Dado que el operador de incremento se encuentra antes de la variable x, debe incrementarse primero y usar su valor después. Esto nos deja con:
z = 3 + 6
Y por lo tanto con z = 3.
Además, también puede utilizarse en combinación con los operadores cortos de asignación: +=, -= , *=, /= y %=. Por ejemplo, la instrucción:
total -= --x;
Si total = 10 y x = 8, recuerda que primero debemos decrementar x, puesto que — se encuentra antes de la variable. Eso nos deja con x = 7. Ahora podemos re-escribir la instrucción como:
total-= 7;
Recuerda que esta instrucción se lee: “Al valor actual de total, réstale 7 y almacena el resultado en total”, lo cual también equivale a:
total = total - 7;
Considerando el valor de la variable total, esto nos deja con:
total = 3
Operador terciario
El operador ternario ? funciona igual que una estructura condicional if-else. La sintaxis de este operador se muestra en la figura 5.

Figura 5. Sintaxis del operador terciario
Es importante aclarar que no siempre es posible sustituir una estructura if-else usando este operador pues depende del número de acciones que se encuentran en cada rama, la cual sólo debe ser una.
Observa la figura 6.

Figura 6. Usando el operador ?
Al lado izquierdo se muestra la estructura if-else original, como se aprecia, se busca encontrar el mayor de dos números. Ahora, en la figura 7 te muestro cómo se realizó el proceso de traducir la instrucción if-else a su versión utilizando el operador terciario.

Figura 7. Ejemplo desglosado del uso del operador ?
Básicamente, como puedes ver el uso más común y apropiado del operador ? es cuando necesitas que una variable tome un valor dependiendo de una condición.
Felicidades, una gran labor. Todo muy bien explicado.
Muchas gracias!