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

[Duda] No entiendo algo de WHILE

Buenas noches, en la en explicacion agrega un let numeroUsuario y pone 0, no entiendo la explicacion respecto a ese cambio. Lo que si entiendo es eliminar el let en la cuarta linea. pero esa parte no la entiendo. Gracias por su ayuda. Hasta el momento he hecho todo sin ver respuestas y lo he logrado. per me siento limitado en esta parte.

let numeroSecreto = 8
let numeroUsuario = 0
while (numeroUsuario != numeroSecreto) {
    numeroUsuario = prompt("¿Me indica el numero entre 1 y 10?");
/*Prompt le pregunta al usuario el dato de la variable numeroUsuario */
/*Console .log permite grabar en la memoria del explorador */
console.log(numeroUsuario);
/* El codigo IF realiza la comparacion */
if (numeroUsuario == numeroSecreto) {
    //Acerto
    //Para que el sistema me lanze el numero acertado, hago la sintaxis de `texto: ${}`
    /// Y el programa lanza lo que pongo dentro de la llave, eso se llama interpolacion.
    alert(`Acertaste el numero de usuario es ${numeroUsuario}`);   
    } else{
    if(numeroUsuario > numeroSecreto) {
    alert("El numero secreto es menor")
        } else {
        alert("El numero secreto es mayor")
        }
    }
}
10 respuestas
solución!

Hola la linea let numeroUsuario = 0 la declara para que el codigo entre en el bucle y inicie el juego cuando llega el while pregunta numeroDeUsuario es distinto a al numeroSecreto esto es true , y despues lo sobreescribe pidiendo al usuario que ingrese un numero en caso de acertar termina el programa ya que comparara numeroUsuario == numeroSecreto.finalmente si el numero del usuario es mayor al secreto le indica que el numero sercreto es menor y termina sino que es mayor espero haberte ayudado .No te desmotives ve de a poco linea por linea Animo!!.

algo que no entiendo es como metió todo dentro de las llaves del while, alguien que me explique porfa

Jairo esto lo hizo por que al abrir las llaves { selecciono todo el codigo y posteriormente presiono la tecla tabulador, eso hizo que se recorriera y se asignara el siguiente }, a mi no me lo agrego por defecto, pero basto con agregarlo de manera manual

Originalmente el codigo estaba asi:

let numeroSecreto = 2;
while (numeroUsuario != numeroSecreto) {
    let numeroUsuario = prompt("Me indicas un número entre 1 y 10 por favor:");

El problema aqui es que cuando el programa llega a leer la linea del while el programa no puede hacer la comparacion porque todavia no se le ha dicho que es numeroUsuario . No puede comparar algo que no sabe que es.

Poniendo el "let numeroUsuario" antes del while hacemos que para cuando el programa llegue a leer la linea del while el programa ya va a saber que es numeroUsuario , y como ya sabe que es ahora si podrá compararlo

let numeroSecreto = 2;
let numeroUsuario;
while (numeroUsuario != numeroSecreto) {
    numeroUsuario = prompt("Me indicas un número entre 1 y 10 por favor:");

Como observacion aparte. Prefiero declarar numeroUsuario sin asignarle ningun valor, porque si en un caso el numero secreo fuera igual al numeroUsuario, entonces al hacer la primer comparacion el programa asumiria que acertamos sin haber ingresado ningun numero

O dicho de otra forma. Si numeroSectreo es 0 y declaramos que numeroUsuario es 0, entonces cuando llegamos a while y hacemos la comparación el programa dirá 0=0 y creerá que acertamos aunque en realidad ni siquiera hemos ingresado nuestro numero. En cambio si dejamos numeroUsuario sin valor, dira Nada≠0 y nos pasara a que introduzcamos nuestro primer valor.

Gracias también tenía la misma duda

Gracias!

Gracias Marcial exelente tip y explicacion.

gracias por la explicacion

Excelente explicacion. Saludos desde Colombia.

gracias Marcial, por la explicacion