3
respuestas

Duda imprimir pares entre 0 a 100

Hola, buen día. Es que hice el ejercicio con el loop WHILE pero al ejecutarlo indicando que el (contador <=100) me imprime hasta 102, según mi interpretación se está dando la orden que haga interacción hasta 100 y que finalmente a ese último ciclo se le añada +2; de hacerlo solo con la condición de que (contador <100) si me imprime finalmente hasta 100, entendiendo que al último tomado que en este caso es 98 se le sume +2 y de como última interacción un resultado de 100. Quedó expresado asi:

  1. De esta manera me imprime hasta 102.

    var c=0, d; while(c <= 100){

     c += 2;
     imprimir(c);

    } imprimir("FIN");

  2. De esta manera me imprime hasta 100.

    var c=0, d; while(c < 100){

     c += 2;
     imprimir(c);

    } imprimir("FIN");

Quiero saber si mi interpretación está acorde a lo planteado. Ahora bien, de usar el for loop expresado con C<=100, me imprime el resultado hasta 100. Aquí no entiendo la lógica del porqué sí funciona así. Lo expresé así:

for (var i = 0; i <= 100; i += 2) { imprimir(i); } imprimir("FIN");

De esta manera sí me imprime hasta 100, por consiguiente partiendo de que ambos loop son practicamente lo mismo al expresarse, ¿Por qué con esta condición de <= en for sí me imprime hasta 100 y por qué no en While?

3 respuestas

Hola Yeferson Bernal Gutiérrez, como estas? probé tu código y te cuenta hasta 102 ya que le estas diciendo a contador que te imprima luego de que termine en 100, es por eso si pones imprimir por debajo de c +=2 te va a imprimir hasta 102 de no colocar el imprimir por debajo y si por encima te va a imprimir hasta 100, espero puedas corregir eso y espero haber sido lo mas claro al explicar.

Hola Yeferson.

Con el While, lo que te sucede es que primero le sumás 2 al contador y después imprimis.

En el For, siempre se suma 2 al final de toda la instrucción.

Si cambiases el orden del c +=2 del while y lo ponés al final. Tendrías que obtener el mismo resultado que en el ciclo for

var c = 0;
while(c <= 100){
    imprimir(c);
     c += 2;
}

Cualquier cosita avisame. Saludos!

Ve, muchas gracias! Entendido. Son muy amables. (: