Solucionado (ver solución)
Solucionado
(ver solución)
5
respuestas

No lee el código según la instrucción

Coloco el código con la condición igual que el instructor en el video y me sigue leyendo el mundial 2022.

<meta charset="UTF-8">

<h1>PROGRAMA AÑO MUNDIAL DE LA FIFA</h1>

<script>


    function saltarLinea() {
        // body...

        document.write('<br>');
        document.write('<br>');
        document.write('<br>');

    }

    function imprimir(frase) {

        document.write(frase);
        saltarLinea();

    }

    var anhoMundial = 1930

        while (anhoMundial < 2020) {
                //Colocamos nuestra condición.
            anhoMundial = anhoMundial + 4;

        imprimir('Hubo mundial de la FIFA en el año ' + anhoMundial);
        }

        imprimir('fin');
</script>
5 respuestas

Hola te paso el código de la clase. Y funcionó bien. Saludos

<meta charset="utf-8">

<h1>PROGRAMA - Año Mundial de la Fifa</h1>
<br>
<script>

     function saltarlinea (){
        document.write("<br>");
        document.write("<br>");
        document.write("<br>");
    }


    function imprimir (frase){

        document.write(frase);
        saltarlinea();
    }

/*
    var anhoMundial = 1930;
    alert("Hubo mundial de la Fifa en el año " + anhoMundial);

    anhoMundial = anhoMundial + 4;
    alert("Hubo mundial de la Fifa en el año " + anhoMundial

    Esto no es práctico ya que el programador debería estar contando y el código se hace muy extenso. */

    //En programación existen los LOOP = interaccions de códigos, repetir el código en función a una condición.

    var anhoMundial = 1930;
      //alert("Hubo mundial de la Fifa en el año " + anhoMundial);

    var limite = parseInt(prompt("Ingrese el año límite para calcular"));

    while(anhoMundial <= limite){; 
        /*es Mientras = Condición (debemos tener en claro que debe salir del mientras, ya  que se puede colgar la pc o el programa)*/
          imprimir("Hubo mundial de la Fifa en el año " + anhoMundial);
          anhoMundial = anhoMundial + 4;
    }

    imprimir("Fin");

</script>
solución!

Buenos compañero,

Es porque en el while estas primero sumando 4 y luego imprimiendo el valor, es decir que cuando entras con el año 2018, efectivamente es menor a 2020 y seguido de eso le suma 4, hasta 2022 y lo imprime, ya en la siguiente iteración entra con 2022 y como es mayor, el para, esto lo corrige primero imprimiendo y luego sumando, para que cuando entre al año 2018, primero imprima ese año y luego le sume 4, entonces ya cuando entre de nuevo al while, ya el 2022 sera mayor a 2020 y va parar. Así le quedaría su codigo:

<meta charset="UTF-8">

<h1>PROGRAMA AÑO MUNDIAL DE LA FIFA</h1>

<script>


    function saltarLinea() {
        // body...

        document.write('<br>');
        document.write('<br>');
        document.write('<br>');

    }

    function imprimir(frase) {

        document.write(frase);
        saltarLinea();

    }

    var anhoMundial = 1930

        while (anhoMundial < 2020) {
            //Colocamos nuestra condición.
            imprimir('Hubo mundial de la FIFA en el año ' + anhoMundial);
            anhoMundial = anhoMundial + 4;
        }

        imprimir('fin');
</script>

Saludos!

Gracias, Jhon y Mabel.

Saludos.

El código se va ejecutando de arriba hacia abajo.

Hola compañero Luis Irán, en Javascript tenemos el concepto de hoisting y las funciones dlse guardan en memoria, un ejemplo seria, que podemos utilizar una función que este en la línea 100 desde la linea 1, es decir que no necesariamente el código va ejecutarse de arriba hacia a abajo

function funcion1() {
    console.log("Función 1");
}

funcion2();
funcion1();

function funcion2() {
    console.log("Función 2");
}

Como puede ver desde la línea 5 ejecutamos la línea 8, 9 y 10 y luego volvemos a la línea 6 y ejecutamos la línea 1, 2 y 3. El concepto de Hoisting primero guarda las funciones en memoria así estén en la última línea y nos deja que estén disponibles desde cualquier línea de código que ejecutamos

Saludos!