Ejercicios con los operadores incremento y decremento: ++ y --

Ejercicios resueltos con operadores ++ y -- (operadores incremento y decremento)
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);

Ejercicio 2: 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);

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;


Soluciones
Solución ejercicio 1:



Valor de X
Salida por pantalla

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


Solución ejercicio 2:


A
B
Salida por pantalla

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



Solución ejercicio 3:

i=1
j=1
k=1
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


1 comentario:

  1. Creo que hay un error en el punto (b) de la tercera solución, por que si todos los valores inician en 1 entonces al hacer esta operación i = k++; el resultado sera (j) = 1, (k) esta en uno pero aumenta ++ seria 2 y como (k) es igual a (i) entonces i también valdría 2. El punto (b) de la tercera solución quedaría de la siguiente manera.

    i j k
    2 1 2

    ResponderEliminar