1
resposta

Ajuda "while(tentativaAtual <= maximoTentativas)"

Na solução do exercicio, está codificado:

while(tentativaAtual <= maximoTentativas) {

var loginInformado = prompt("Informe seu login"); var senhaInformada = prompt("Informe sua senha");

if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

alert("Bem-vindo ao sistema, " + loginInformado);

tentativaAtual = maximoTentativas; //

Aqui a tentativaAtual ficou igual a 3, certo? Pq o programa sai do loop, se a condição é "<=" ? Sendo que 3, ainda é igual ao máximoTentativas?

1 resposta

Oi Diogo, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

Isso acontece porque o while é uma estrutura condicional de repetição que depende do valor de seus parâmetros, que nesse caso você deve ter declarado tentativaAtual = 0 e maximoTentativas = 3. Lembrando que é uma suposição do seu código, já que o mesmo não foi compartilhado completo.

Analisando a sua dúvida, o loop é quebrado porque a condição é satisfeita no momento em que atribuímos o valor da tentativaAtual à variavel maximoTentativas, ou seja, tentativaAtual = 3. Logo em seguida, como ocorre em toda estrutura while, tem de haver uma iteração da variável tentativaAtual, resultando em tentativaAtual++ ou tentativaAtual = tentativaAtual + 1.

Dessa forma, tentativaAtual = 4 deixa de satisfazer a condição e a leitura do código continua normalmente.

Como recomendação, deixo o Alura+ de Iteradores em JavaScript: for e while, da nossa instrutora Juliana Amoasei, onde, é explicado passo a passo como utilizar iteradores dentro de funções while e for do JavaScript.

Em caso de mais dúvidas, me coloco à disposição.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!