Alguém pode me explicar por que a variável "existe" começa com "false", assim como a "achou" do professor? Tem outra forma de fazer que não usando elas, estou um pouco confusa, se alguém puder explicar melhor ficaria grata.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Alguém pode me explicar por que a variável "existe" começa com "false", assim como a "achou" do professor? Tem outra forma de fazer que não usando elas, estou um pouco confusa, se alguém puder explicar melhor ficaria grata.
Leilane,
a variável 'achou' foi criada no código do professor para indicar se o número digitado é igual a algum dos números escolhidos como 'segredo'. Se for igual a algum dos segredos, 'achou' passará a ser true, e ignorará o if abaixo:
if(achou == false) {
alert("Você ERROU!");
}No começo da comparação, isto não é verdade. E se o valor digitado não coincidir com nenhum dos segredos, o valor não será alterado, continua sendo false, para que o "código" possa saber o que fazer, atendendo ao if acima.
O mesmo ocorre com a variável 'existe'. Ela indica se o último ingrediente digitado é igual a algum já existente. No momento antes da comparação, 'existe' é false, porque não houve nenhuma comparação ainda. Se a comparação encontrar algum ingrediente igual
if( ingredientes[posicao] == ingrediente) {
existe = true;
break;
}Se a comparação não encontrar o ingrediente digitado dentro da lista de ingredientes anteriores, existe continua sendo false:
if( existe == false) {
ingredientes.push(ingrediente);
contador++;
}Nos dois casos, estas variáveis funcionam como indicadores, para que seja tomada uma decisão: executar uma ação ou outra.
Talvez seja possível implementar estes códigos de outras variadas maneiras, mas fazê-la com a atribuição de um valor a uma variável, dependendo de cada situação, é uma das mais simples de implementar, e de compreender a lógica.