Autor Tema: Operadores de incremento y decremento especiales JavaScript ejercicio CU01118E  (Leído 1309 veces)

Angeliyo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 11
    • Ver Perfil
Buenas tardes. Mi consulta es relativa al ejercicio CU01118E del tutorial de programación web con JavaScript desde cero de aprenderaprogramar.

En esta ocasion he usado la consola para intentar averiguar el porque de algún resultado del ejercicico que no entendía: Valores iniciales: a = 4, b = 2

Operador ++ (anterior): ++a * b == 10
(Ahora el valor de a es: 5)
Operador ++ (posterior): a++ * b == 8 //¿pq de este resultado??
(Ahora el valor de a es: 5)
Operador -- (anterior): --a * b == 6
(Ahora el valor de a es: 3)
Operador -- (posterior): a-- * b == 8 // ¿ y este??
(Ahora el valor de a es: 3)
......:
var a = 2;
console.log(a++); //me da 2
console.log(++a); // me da 4
¿no me digas que no es una locura???jjj
Por favor,,agradezco la ayuda,, disculpar las molestias.
Gracias
« Última modificación: 19 de Junio 2022, 13:51 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re: codigo CU01118E,Operadores de incremento
« Respuesta #1 en: 30 de Abril 2022, 17:48 »
Hola.

Veamos:
Citar
Operador ++ (anterior): ++a * b == 10
(Ahora el valor de a es: 5)
Ahí se están realizando dos operaciones:
- un incremento(una suma) sobre a
- una multiplicación de a * b.

Si primero hacemos el incremento y luego la multiplicación, tendremos un resultado.
Pero, si primero multiplicamos y el incremento lo hacemos después, el resultado será distinto.

Entonces, cuando se usa "incremento anterior", primero se hace el incremento y luego se multiplica.
Eso es lo que ocurre aquí:
Citar
a = 4, b = 2
Operador ++ (anterior): ++a * b == 10
(Ahora el valor de a es: 5)
La a se incrementa en valor 5, y luego se multiplica por b que es 2. Resultado =  10.

En cambio, si se usa el "incremento posterior", entonces primero se hace la multiplicación y el incremento ocurre después.
Citar
a = 4, b = 2
Operador ++ (posterior): a++ * b == 8  //¿pq de este resultado??
(Ahora el valor de a es: 5)
Aquí se multiplica la a que vale 4 por b que es dos. Resultado = 8.
Y después, se hace el incremento, por lo que la a pasa a valer 5.
Pero ese 5 no interviene en la multiplicación, porque esta ya terminó.

En ambos casos, la a termina valiendo 5. La diferencia es que en el primer caso se multiplica después de adoptar el valor 5.
Y en el segundo caso, la multiplicación ocurre antes de que adopte valor 5

En los console.log(), ocurre lo mismo:
Citar
var a = 2;
console.log(a++); //me da 2
console.log(++a); // me da 4

En la primera línea, la de color azul, se usa el "incremento posterior".
Es decir, ocurra lo que ocurra, lo último será la suma.

Entonces, esa línea azul lo primero que hace es mostrarte el valor de a, que es 2.
Y lo último que hace es el incremento, así que la a pasa a valer 3.
Pero ese 3, tú no lo ves en pantalla, porque cuando el log() mostró el valor de a, aún no se había incrementado.

La siguiente línea, la verde, hace un "incremento anterior", es decir, lo primero que va a ocurrir es la suma. Luego ya pasará lo que tenga que pasar.
Por tanto, la línea verde lo primero que hace es incrementar la a, que valía 3 y ahora pasa a valer 4.
Y tras esto, te muestra en pantalla su valor, que ya es 4.

Espero que ahora haya quedado un poco más claro la diferencia que hay entre estos dos tipos de incrementos (y decrementos).

Saludos.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".