Ejercicios con los operadores incremento y decremento en Java

Ejercicios básicos resueltos Java

Ejercicios resueltos para practicar con los operadores incremento y decremento en Java: operadores ++ y --

Los operadores de incremento y decremento en Java permiten modificar el valor de una variable de forma compacta y eficiente. En estos ejercicios vas a practicar tanto las versiones prefijas como las postfijas.

El preincremento (++x) y el predecremento (--x) modifican el valor de la variable antes de que esta participe en la expresión.

Por ejemplo, si se ejecutan estas instrucciones:

int x = 5;
int y = ++x;

El valor que se asigna a la variable y es 6. El operador ++ aparece antes de la variable x (preincremento). Esto indica que primero se incrementa el valor de x y ese nuevo valor será el que se asigne a la variable y.

Los valores de las variables después de ejecutar las instrucciones son x = 6 y = 6

Por otro lado, el postincremento (x++) y el postdecremento (x--) aplican la modificación después de usar el valor original. Esta diferencia entre el prefijo y el postfijo, aunque sutil, puede producir resultados muy distintos según el contexto en el que se utilicen.

Por ejemplo, si se ejecutan estas instrucciones:

int x = 5;
int y = x++;

El valor que se asigna a la variable y es 5. El operador ++ aparece después de la variable x (postincremento). Esto indica que a la variable y se le asigna el valor actual de la variable x y después se produce el incremento de x.

Los valores de las variables después de ejecutar las instrucciones son x = 6 y = 5

Los ejercicios que encontrarás a continuación están diseñados para ayudarte a comprender cómo funcionan estas variantes prefijo y postfijo, cómo afectan al flujo de un programa y cómo interpretarlas correctamente al leer o escribir código. Practicar los operadores incremento y decremento en Java es fundamental para mejorar tu dominio de las expresiones en Java y evitar errores comunes que suelen surgir por no tener claro el orden en el que se aplican las operaciones.

Ejercicio 1: Si x es una variable de tipo int con valor 10, determina qué se muestra por pantalla cuando se ejecutan las siguientes instrucciones:

int x = 10;
System.out.println(x);
x++;
System.out.println(x);
System.out.println(++x);
System.out.println(x++);
System.out.println(x);
System.out.println(x++);
System.out.println(++x);
System.out.println(++x);
++x;
x++;
System.out.println(++x);
System.out.println(x++);
System.out.println(++x);

valor de x muestra
int x = 10; 10
System.out.println(x); 10
x++; 11
System.out.println(x); 11
System.out.println(++x); 12 12 Primero se incrementa el valor de x y después se muestra
System.out.println(x++); 13 12 Primero muestra el valor de x y después se realiza el incremento
System.out.println(x); 13
System.out.println(x++); 14 13 Primero muestra el valor de x y después se realiza el incremento
System.out.println(++x); 15 15 Primero se incrementa el valor de x y después se muestra
System.out.println(++x); 16 16 Primero se incrementa el valor de x y después se muestra
++x; 17
x++; 18
System.out.println(++x); 19 19 Primero se incrementa el valor de x y después se muestra
System.out.println(x++); 20 19 Primero muestra el valor de x y después se realiza el incremento
System.out.println(++x); 21 21 Primero se incrementa el valor de x y después se muestra

Ejercicio 2: En este ejercicio se aplican los operadores incremento y decremento en Java a variables de tipo char.

Aplicar un incremento a una variable char supone obtener el carácter que se encuentra a continuación del actual en la tabla ASCII.

Por ejemplo si la variable A de tipo char contiene el carácter 'c', si aplicamos el incremento ++A la variable A contendrá ahora el carácter 'd'. Por lo tanto no es necesario conocer el valor numérico del carácter que contiene la variable para realizar este ejercicio.

Dadas las variables A y B de tipo char, calcula qué se muestra por pantalla cuando se ejecutan las siguientes instrucciones:

char A = 'c';
char B;
System.out.println(A++);
System.out.println(A++);
System.out.println(++A);
B = --A;
System.out.println(++A);
A++;
--B;
System.out.println(B++);
System.out.println(++B);
System.out.println(++A);
System.out.println(B--);
System.out.println(A);
System.out.println(B);

A B muestra
char A = 'c'; 'c'
char B;
System.out.println(A++); 'd' c Primero muestra el valor de A y después se realiza el incremento
System.out.println(A++); 'e' d Primero muestra el valor de A y después se realiza el incremento
System.out.println(++A); 'f' f Primero se incrementa el valor de A y después se muestra
B = --A; 'e' 'e' Primero se decrementa el valor de A y después se asigna a B
System.out.println(++A); 'f' f Primero se incrementa el valor de A y después se muestra
A++; 'g'
--B; 'd'
System.out.println(B++); 'e' d Primero muestra el valor de B y después se realiza el incremento
System.out.println(++B); 'f' f Primero se incrementa el valor de B y después se muestra
System.out.println(++A); 'h' h Primero se incrementa el valor de A y después se muestra
System.out.println(B--); 'e' f Primero muestra el valor de B y después se realiza el decremento
System.out.println(A); h
System.out.println(B); e

Ejercicio 3: Un programa Java contiene las siguientes declaraciones y asignaciones iniciales:

int i = 1, j = 1, k = 1;

Determina el valor final de las tres variables en cada una de las siguientes instrucciones.

Las instrucciones son independientes unas de otras, es decir, el valor inicial de las variables en cada instrucción es

i = 1 j = 1 k = 1

int i = 1, j = 1, k = 1;
a) i = ++j;
b) i = k++;
c) i = k + ++j;
d) i = i + j++;
e) i = j + ++k;
f) i = ++j + k++;
g) j = k-- + --i;
h) i = k + 1 + ++j;
i) i = ++i + --j + k--;
j) k = j-- + ++k;

El valor inicial de las variables en cada instrucción es i = 1 j = 1 k = 1 i j k a) i = ++j; 2 2 1 b) i = k++; 1 1 2 c) i = k + ++j; 3 2 1 d) i = i + j++; 2 2 1 e) i = j + ++k; 3 1 2 f) i = ++j + k++; 3 2 2 g) j = k-- + --i; 0 1 0 h) i = k + 1 + ++j; 4 2 1 i) i = ++i + --j + k--; 3 0 0 j) k = j-- + ++k; 1 0 3

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio