Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Realmente desde el 1 al 100 (bug)

El ejercicio es facil si el contador empieza desde * 2* , sin embargo la consigna dice desde el 1, que es desde donde quiero empezar; he escrito un codigo pero algo marca error, debe ser la iniciacion de if, a ver si alguien lo debuggea:

 <!DOCTYPE html>
    <meta charset="utf-8">
<h1> Programa - numeros pares del 1 al 100</h1>
    <script>
        function saltarlinea(){
            document.write("<br>");
            document.write("<br>");
        }
        function imprimir(frase){
            document.write(frase);
            saltarlinea();
        }
        var inicio = 1;
        if(inicio==2){
                    while(inicio<=100){
                imprimir(inicio);
                inicio+2;

            }
        } else {
            inicio++;
        }
    </script>
3 respuestas

Hola Marina,

Te dejo el código corregido:

<!DOCTYPE html>
<meta charset="utf-8">
<h1> Programa - numeros pares del 1 al 100</h1>
<script>
    function saltarlinea(){
        document.write("<br>");
        document.write("<br>");
    }
    function imprimir(frase){
        document.write(frase);
        saltarlinea();
    }

    for (let index = 1; index <= 100; index++) {

        if(index %2 == 0){
            imprimir(index);
        }

    }
</script>

Recuerda que el código se procesa de arriba hacía abajo, el problema es que definiste la variable inicio con un valor de uno, luego comparaste si inicio vale 2 y como no lo vale le sumaste 1, dando un valor de 2 para inicio. Sin embargo, luego de sumarle 1 a la variable inicio el código se termina porque como inicialmente tu if no dio true nunca entró en el ciclo while.

En conclusión: primero crea el ciclo while para que el código esté continuamente evaluando cuánto vale la variable inicio y luego haces tus condicionales en este caso inicio==2.

solución!

@Benjamin, usaste el comando For, la consigna manda a usar un While. Tu respuesta de los tiempos me ha ayudado a desbloquearme, y luego era el operador ++ luego de la variable que no incrementaba antes de imprimir. Ahora he corregido y se puede imprimir aunque el usuario ingrese el numero 0 :

<!DOCTYPE html>
    <meta charset="utf-8">
<h1> Programa - numeros pares del 1 al 100</h1>
    <script>
        function saltarlinea(){
            document.write("<br>");
            document.write("<br>");
        }
        function imprimir(frase){
            document.write(frase);
            saltarlinea();
        }
        var inicio = parseInt(prompt("Numero desde donde comenzar de par en par, hasta el 100"));
if(inicio<2){            
    inicio = ++inicio;

      if(inicio<2){            
    inicio = ++inicio;
      }}
      while(inicio<=100){
                imprimir(inicio);
               inicio = inicio+2;
            }

        </script>

Incluso el usuario puede obtener una lista de impares hasta el 100, ya que aun no sabemos restringir que condicion de input jaja ¡Muy interesante!

Disculpa no leí la consigna de la clase. Aquí te lo dejo optimizado para un ciclo while:

<!DOCTYPE html>
<meta charset="utf-8">
<h1> Programa - numeros pares del 1 al 100</h1>
<script>
    function saltarlinea(){
        document.write("<br>");
        document.write("<br>");
    }
    function imprimir(frase){
        document.write(frase);
        saltarlinea();
    }
    var inicio = parseInt(prompt("Numero desde donde comenzar de par en par, hasta el 100"));

    while(inicio<=100){
        if (inicio % 2 == 0){
            imprimir(inicio);
            inicio++;
        }
        inicio++;
    }

</script>

Luego comprenderás que lo "correcto" (mejor dicho optimizado) para utilizar aquí es el ciclo for.

Debido a que si de antemano conoces el número de iteraciones (repeticiones) que necesitarás, lo más conveniente es utilizar un ciclo for.

Por otro lado, si no conoces el número de iteraciones necesarias, utiliza un ciclo while.

Se necesitan de más líneas para realizarlo en while, además de agregar un incremento a la variable que lleva el conteo. Esto puede tener un problema y es que si no tenemos la suficiente experiencia podríamos tener problemas con cuándo y dónde incrementar el conteo de nuestra variable. Mientras que con el for la variable siempre se incrementará antes de la siguiente iteración.

Aún así me alegro de que hayas resuelto el problema, saludos!