Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

[Duda] Ubicación contador++

Saludos a todos! Alguien me puede explicar por favor, porqué si digito "contador++;" antes de System.out.println(contador); esto imprime en la consola los números del 1 hasta el 11? Caso contrario si lo digito después del System.out.println(contador); como indica el profesor en clase. Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadMuchas gracias!

3 respuestas

¡Hola Alumno!

Ok, para responder esta pregunta necesitamos comprender bien el flujo de lo que estamos realizando. Tomemos el ejemplo del código:

int contador = 0;

while(contador <= 10){
    contador++;
    System.out.println(contador);
}

Entonces, ¿Qué sucede en la primera iteración de este ciclo? Sabemos que contador = 0. Luego entramos en el ciclo y lo primero que hacemos es evaluar la condición, ¿Es contador <= 10? Sí, es 0. Es menor que 10. Entonces hacemos efectiva esa iteración del ciclo, es decir, elevamos contador en 1, así que ahora contador ya no es 0, es 1. Y finalmente imprimimos el contador, es decir, 1.

Eso sucede en la primera iteración. Entonces, ¿Qué imprimiremos en la última iteración? Si contador es = 1 en la primera iteración, y este ciclo debe iterarse hasta 10, pues... 10 + 1 = 11... Así que 11 será el resultado de nuestra última iteración, por lo que habremos impreso los valores 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, y 11.

Este fue nuestro primer caso, veamos el segundo ahora:

int contador = 0;

while(contador <= 10){
    System.out.println(contador);
    contador++;
}

Entonces, contador = 0, evaluamos si contador es <= 10, y si, en efecto, es menor. Entramos al ciclo y lo primero que hacemos es imprimir contador, así que imprimimos el valor... 0. Luego sumamos 1 a contador, es decir, 0 + 1 = 1.

Y tenemos nuestra primera impresión... ¿Y qué imprimiremos en el ultimo ciclo? Pues... 10 + 0 = 10.

Y ya tienes tu respuesta colega.

Daniel

Muchas gracias por su respuesta y aclarar mi duda, le agradezco mucho por ayudarme a comprender como se comporta el flujo del código que ejecutamos.

Saludos.

De nada! para eso estamos!