Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Duda sobre inicialización de la variable "encontrado"

No entiendo por que se inicializa la variable "encontrado" como false y porque mas adelante se la pone como true. ¿Me podrian explicar el funcionamiento de esta asignación en el código? Muchas Gracias.

1 respuesta

Hola Julian, la variable encontrado es inicializada el false para que en cuanto entre al for y haga la primera iteración ( o primer recorrido),

  1. Verifique en el primer si el valor que ingresaste es el mismo que esta en la posición de tu array en el que estas ubicado if(parseInt(input.value) === secretArray[i]).
                 Ejm. mi **array= [1, 2,  3]**
                     porsición      i =   0   1  2
                 Mi valor ingresado fue **3**, 
  2. En el primer recorrido comparará el valor 1 == 3 --> esto me dará false e incrementara a mi posición en 1.
  3. En el segundo recorrido comparará el valor 2 ==3 ---> esto me dará false e incrementara a mi posición en 2.
  4. En el tercer recorrido comparará el valor 3 ==3 ---> esto me dará TRUE, enviaria al usuario un alert('Usted acertó') y cambiara encontrado= true; por lo tanto cuando el código llegue al if(encontrado === false) no va a poder entrar porque cuando se encontró el valor, cambiamos el valor de encontradoa true.
  5. Ahora si nunca se hubiera encontrado un valor igual al que ingresamos en el input nunca se hubiera cambiado el valor de encontrado y entonces si hubiera entrado al if(encontrado === false) y se mostraría un alert('Usted se equivoco').
function verificar(){
        let encontrado = false;
        for (let i = 0; i < secretArray.length; i++) {
            if(parseInt(input.value) === secretArray[i]){
                alert('Usted acertó');
                encontrado= true;
                break;
            };
            input.value = '';
            input.focus();
        };
        if(encontrado === false){
            alert('Usted se equivoco');
        };
    };

Espero te sirva mi explicación :) que tengas buen día.