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;



Puedes encontrar más ejercicios para seguir practicando en este libro.


Contiene ejercicios resueltos sobre los conceptos básicos del lenguaje java: Declaración de variables, literales, tipos de datos, operadores, crear expresiones algebraicas correctas, etc.

Las soluciones de los ejercicios incluyen una explicación detallada sobre cómo se ha resuelto.

El contenido del libro es una recopilación de ejercicios realizados en mis clases de Programación en los ciclos formativos de grado superior Desarrollo de aplicaciones web y Desarrollo de aplicaciones multiplataforma.

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

9 comentarios:

  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
    Respuestas
    1. en realidad el valor de i seguirá siendo 1 ya que el incremento en k solo se dará en el momento en que se vuelva a utilizar la variable k de allí a que sea un post incremento

      Eliminar
    2. Cada instrucción es independiente. El enunciado lo dice!!
      Entonces al empezar cada línea todas valen 1

      Eliminar
  2. hola, no entiendo mucho la diferencia de los signos ++ a la derecha o a la izquierda, me podrian explicar un poco, por favor!

    ResponderEliminar
  3. en pocas palabras si el signo ++ esta antes de la variable (a la izquierda) es un pre incremento por lo que este cambiara el valor de la variable antes de ser utilizada, en cambio, si esta al lado derecho este se incrementara en la siguiente vez que se utilice, por ejemplo
    var i = 2;

    x = ++i; en este caso el valor de x será 3 ya que es incrementado previamente

    y = i++, aqui el valor de i seguirá siendo el mismo hasta que se vuelva a utilizar la variable
    z = i, en este caso ya el valor cambiaría de 2 a 3 puesto que i ya fue utilizado previamente en la variable y

    ResponderEliminar
  4. Escriba un programa para ingresar 4 notas de un alumno, calcular y mostrar su promedio, sabiendo que la 1 ra y 2 da tiene 15 de peso cada una, la 3 ra 30 y 4ta tienen 40 de peso respectivamente. una ayudita :c ?

    ResponderEliminar
  5. Multiplique el valor de la variable a por el valor de la variable b, y almacene el resultado en la variable c.
    • Aumente el valor de la variable a.
    • Disminuya el valor de la variable b.
    • Compare el valor de las variables a y b para probar una igualdad.
    Introduzca una sentencia no apropiada para generar un error, y visualice el tipo de error mostrado por el compilador.
    ayuda

    ResponderEliminar
  6. un programa C contiene las siguientes declaraciones y asignaciones iniciales int m=1 q=1 k=1; derterminar el valor final de las siguientes intrucciones . las intrucciones son independientes de otras, es decir , el valor inicial de las variables m=1,q=1 , k=1

    ResponderEliminar