Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
5
respuestas

duda sobre variable encontrado

Saludos.

Mi duda es, qué función cumple la variable encontrado false o true, no entiendo como afecta o en qué ayuda a la resolución. Gracias por su ayuda de antemano

<meta charset="utf-8">
<input/>
<button>Verificar si acertó </button>

<script >
 //var secreto = Math.round(Math.random()*10);

 var secretos = [3,5,7,9];
 var input = document.querySelector("input");
 input.focus ();

function verificar (){ 

   var encontrado = false;
  for (var posicion = 0; posicion < secretos.lenght; posicion++) {

     if (parseInt(input.value) == secretos[posicion]) {
            alert ("usted acertó");
            encontrado = true;
            break;

    }
    }  
      if (encontrado == false) {alert ("Usted erró");


} 

    input.value = "";
    input.focus ();
}
  var button = document.querySelector("button");
  button.onclick = verificar;

</script>
5 respuestas

Buenas, en la variable "encontrado" almacenas un valor booleano (true / false).

Lo que el código te está diciendo es, primero guardame en la variable "encontrado" "false" ya que todavía no encontramos nada:

function verificar (){ 
    var encontrado = false;
...

Después vas a recorrer mis números secretos, si el valor que el usuario insertó es igual a un número secreto, guardá en mi variable encontrado "true" ya que un número secreto fué encontrado, además detené la iteración:

..
    for (var posicion = 0; posicion < secretos.length; posicion++) {
        if (parseInt(input.value) == secretos[posicion]) {
            alert ("usted acertó");
            encontrado = true;
            break;
        }
...

En caso de que no se cumpla la condición anterior y si encontrado es "false" mostrá una alerta al usuario que no acertó:

...
    for (var posicion = 0; posicion < secretos.length; posicion++) {
        ...
    }  
    if (encontrado == false) {
        alert ("Usted erró");
    }
}

Espero haber sido de ayuda, de ser así no olvides marcar como solucionado. Saludos :)

Saludos y gracias por tu explicación.

Estaba revisando de nuevo éste ejercicio para entenderlo mejor, sin embargo, me surge otra duda.

Si la variable encontrado = true detiene la iteración, por qué es necesario poner break?.

Gracias de antemano.

La variable "encontrado = true" no detiene la iteración, en cambio break si la detiene, si esta última no estubiese se repetiría el código las veces que necesite repetirse (En este caso el largo de los secretos).

La variable "encontrado" sirve para que si no es true devuelve la alerta de "usted erró".

Como extra, tanto en el código que pegaste como en la explicación que había dado, en:

 for (var posicion = 0; posicion < secretos.lenght; posicion++) {

hay un error, para solucionarlo habría que cambiar "lenght" por "length"

muchas gracias lucas! la verdad que me ayudo muchisimo tu explicacion estaba trabada con eso.

Puede ser que esto de la variable encontrado = true haga referencia a lo que se conoce como "bandera"? en caso que sí, para qué otros casos es útil?