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

ERROR "no definido"

IMAGEN CON ERROR. No entiendo pq me dice q no esta definido si lo hice igual que el profe

13 respuestas

Hola Lara, al parecer el error es porque tu estas utilizando una variable que esta dentro del while y ya no la puedes utilizar en el if porque ya lo cerraste . Intenta colocar esa variable fuera del while como tienes las demás

Hola oscar, gracias por la ayuda, pero ya intente eso y no me funcionó. Ene l video el profesor lo pone dentro del while y en su codigo q descargue esta igual. No se pq no me funciona de ninguna de las maneras. Luego me sentaré a ver q puede ser pq ya se me murieron los ojos de mirar tan fijamente el codigo jajaj

Hola, podrías copiar el código en un mensaje? Así lo puedo probar mejor jaja. Fijate que hay un ícono que es < / > . Insertas el código entre esas comillas y te lo va a pegar con el formato apropiado.

Puedes compartir tu código para analizarlo también. Saludos

<meta charset="utf-8">

<h1> PROGRAMA JUEGO </h1>

<script>

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

function imprimir (frase) {
    document.write(frase);
    saltarLinea();
}

let numeroPensado = Math.round(Math.random()*10)
let intentos = 3;
let contador = 1;

while (contador <= intentos) {

    let numeroLanzado = parseInt(prompt("Ingrese un numero entre 0 y 10"))


        if (numeroPensado == numeroLanzado) {
            alert("Has acertado en el intento " + contador + ".El numero pensado era " + numeroPensado)
            break; 
    }

        else {

            alert("No has acertado");
        }

        contador ++;

    }

        if (numeroPensado == numeroLanzado) {

            imprimir("Has acertadado en el intento " + contador + ".El numero pensado era " + numeroPensado);
    }

        else {

            imprimir("No ha acertado, el numero pensado era " + numeroPensado);
        }

    imprimir("FIN DEL JUEGO")

</script>

Hola Lara, creo, pero no me acuerdo bien... que me paso lo mismo... no se porqeu no te toma la variable numeroLanzado.. pero intenta declararla afuera del while yo probaria esata dos opciones

let numeroLanzado = 0;
while(....){
numeroLanzado = parseInt(......);

y la otra forma que haria seria hacer el let con el prompt todo afuerade while..

cre que de esas forma te va a funcionar.... lo que no tengo claro es porque no lo toma como lo tenes, por que es una variable dentro del while

No sé si cambia en algo...Pero le cambié la declaración a numeroLanzado de let a var y me lo tomó bien al código. Les debo la explicación lógica al 100% jajajaj pero me funcionó de esa forma.

yo no uso var pq estoy acostumbrada al let. deberia funcionar igual. Ya fue lo dejo asi JAJJAJA gracias a todos x la ayuda

si eso pasa porque var hace a todas las variables como global... hoisting se llama por si quieren investigar pero trae algunos problemas... por eso dije que coloque la variable afuera del while

Voy a leer más sobre eso Gianni, porque medio peligroso mandar variables globales así jajajaj. Gracias por la info!

<script>
function saltarLinea () {
    document.write ("<br>")
    document.write ("<br>")
    document.write ("<br>")
}

function imprimir (frase) {
    document.write(frase);
    saltarLinea();
}

let numeroPensado = Math.round(Math.random()*10);
let intentos = 3;
let contador = 1;

while (contador <= intentos) {
    let numeroLanzado = parseInt(prompt("Ingrese un numero entre 0 y 10"));

        if (numeroPensado == numeroLanzado) {
            imprimir("Has acertado en el intento " + contador + " el numero era " + numeroPensado);
            break; 
    }
        else {
            alert("No has acertado");
            imprimir("No ha acertado");
        }
        contador ++;
    }
    imprimir("FIN DEL JUEGO")
</script>

Fijate que lo dejé así, solamente le cambié algunas cosas. Esta funcionando bien

claro pero ahi esta diferente (sin el segundo if) q el profesor puso. asi si me funcionaba. gracias igual

solución!

Hola Lara, numeroLanzado está definida como una variable local dentro del While por eso no te la reconoce el if. Para que funcione tendrías que declararla primero como variable gobal sin darle un valor y después dárselo dentro del While.

El código quedaría así:

<meta charset="utf-8">

<h1> PROGRAMA JUEGO </h1>

<script>

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

function imprimir (frase) {
    document.write(frase);
    saltarLinea();
}

let numeroPensado = Math.round(Math.random()*10)
let intentos = 3;
let contador = 1;

let numeroLanzado;

while (contador <= intentos) {

        numeroLanzado = parseInt(prompt("Ingrese un numero entre 0 y 10"))

        if (numeroPensado == numeroLanzado) {
            alert("Has acertado en el intento " + contador + ".El numero pensado era " + numeroPensado)
            break; 
    }

        else {

            alert("No has acertado");
        }

        contador ++;

    }

        if (numeroPensado == numeroLanzado) {

            imprimir("Has acertadado en el intento " + contador + ".El numero pensado era " + numeroPensado);
    }

        else {

            imprimir("No ha acertado, el numero pensado era " + numeroPensado);
        }

    imprimir("FIN DEL JUEGO")

</script>