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)
2
respuestas

If y Else imprimen aunque ambas declaraciones no son reales

El juego funciona, sin embargo a veces imprime ambos resultados de las condiciones, ej:

Juego de Loteria Incorrecto! el numero era menor

Incorrecto! el numero era mayor

Numero generado:1

Numero introducido:5

<!DOCTYPE html>
    <meta charset="utf-8">
<h1> Juego de Loteria</h1>
    <script>
        function saltarlinea(){
            document.write("<br>");
            document.write("<br>");
            document.write("<br>");
        }
        function imprimir(frase){
            document.write(frase);
            saltarlinea();
        }
        function loteria(){
         num = Math.round(Math.random()*10);
         return num;
        }

    var num = numeroGanador
    var numeroGanador = loteria();
    var numeroLanzado = parseInt(prompt("Ingrese un numero entre 1-10"));
    if(numeroGanador==numeroLanzado){
        imprimir("Correcto!");
    }    
    if(numeroLanzado>numeroGanador){
        imprimir("Incorrecto! el numero era menor");
    }
        else(numeroLanzado<numeroGanador)
            imprimir("Incorrecto! el numero era mayor");

    imprimir("Numero generado:"+numeroGanador);
    imprimir("Numero introducido:"+numeroLanzado);
</script>

Me hizo quitarle las llaves al else, supuesto syntax error

2 respuestas
solución!

Hola Marina,

Recuerda que el else no lleva condicionales es por eso que te daba syntax error. Lo que sí existe es un else if, pero creo que ese no se ha visto aún en el curso.

También por lo que vi estás utilizando dos veces la variable num, te dejo el código corregido:

<!DOCTYPE html>
    <meta charset="utf-8">
<h1> Juego de Loteria</h1>
    <script>
        function saltarlinea(){
            document.write("<br>");
            document.write("<br>");
            document.write("<br>");
        }
        function imprimir(frase){
            document.write(frase);
            saltarlinea();
        }
        function loteria(){
         num = Math.round(Math.random()*10);
         return num;
        }

    var numeroGanador = loteria();
    var numeroLanzado = parseInt(prompt("Ingrese un numero entre 1-10"));
    if(numeroGanador==numeroLanzado){
        imprimir("Correcto!");
    }    
    if(numeroLanzado > numeroGanador){
        imprimir("Incorrecto! el numero era menor");
    }
    if(numeroLanzado < numeroGanador){
        imprimir("Incorrecto! el numero era mayor");
    }
    imprimir("Numero generado:"+numeroGanador);
    imprimir("Numero introducido:"+numeroLanzado);
</script>

Lo mejor es siempre crear condicionales con el if, ya que este caso el te imprimía los resultados de ambas condiciones debido al else.

Fijate así:

if(numeroGanador==numeroLanzado){
    imprimir("Correcto!");
}
else{
    if(numeroLanzado>numeroGanador){
        imprimir("Incorrecto! el numero era menor");
    }
    else{
            imprimir("Incorrecto! el numero era mayor");
    }
}