Olá Markus, beleza?
Vamos começar atacando o seu problema especificado no código rs
//agora começa o real problema!!!
var tentativaSenha = 1;
var maximasTentativas = 3;
while(tentativaSenha <= maximasTentativas){
if(loginInformado == loginCadastrado && senhaInformada == senhaCadastrada){
alert("Bem Vindo ao nosso programa ");
tentativaSenha = maximasTentativas + 1;
}else{
if(tentativaSenha == maximasTentativas){
alert("Número de tentativas excedido");
}else{
alert("Senha inválida." + " Digite sua senha novamente");
var senhaInformada = prompt("Digite sua senha");
}
} tentativaSenha = tentativaSenha + 1; //não entendo como esse é o fator que tira do looping
}
Vamos lá, o While é uma estrutura de repetição que continua até enquanto a clausula não for satisfeita, no seu caso esse trecho:
var tentativaSenha = 1;
var maximasTentativas = 3;
while(tentativaSenha <= maximasTentativas)
Note que Enquanto a tentativaSenha (valor = 1) for menor ou igual ao maximasTentativas (valor = 3) realize tudo o que está dentro do Loop (iniciamos então a rotina de loop)
Vc informa seu usuário e começa a validar a senha do mesmo, correto?
Então vamos para a parte de validar a senha :
if(loginInformado == loginCadastrado && senhaInformada == senhaCadastrada){
alert("Bem Vindo ao nosso programa ");
tentativaSenha = maximasTentativas + 1;
}
Aqui é o pedaço que indica que vc acertou a senha, então note que no trecho
tentativaSenha = maximasTentativas + 1;
É adicionado ao valor de tentativaSenha o numero maximo de tentavas + 1, saindo instantaneamente do loop, pois o valor de tentativaSenha já será maior que maximasTentativas , pois adicionamos + 1 a ele na atribuição.
else{
if(tentativaSenha == maximasTentativas){
alert("Número de tentativas excedido");
}else{
alert("Senha inválida." + " Digite sua senha novamente");
var senhaInformada = prompt("Digite sua senha");
}
} tentativaSenha = tentativaSenha + 1; //não entendo como esse é o fator que tira do looping
}
Na primeira Cláusula Else do Primeiro IF temos algumas verificações internas, onde:
if(tentativaSenha == maximasTentativas){
alert("Número de tentativas excedido");
}
Verifica somente se o valor da tentativaSenha é igual a maximasTentativas e exibe a mensagem caso seja.
else{
alert("Senha inválida." + " Digite sua senha novamente");
var senhaInformada = prompt("Digite sua senha");
}
Ocorre caso tentativaSenhanão seja igual a maximasTentativas, repetindo o processo de pedir uma senha
Agora a sua dúvida:
tentativaSenha = tentativaSenha + 1; //não entendo como esse é o fator que tira do looping
No final de cada repetição do While, adicionamos +1 a variável tentativaSenha, ou seja, sempre que terminarmos uma execução adicionamos +1 a ela.
Sendo que o limite do nosso While (para sair dele por excesso de tentativas é igual a variável maximasTentativas, que possui o valor de 3)
Então se o valor da tentativaSenha for igual ou maior que 3, nos encerramos a condição do While estabelecida lá em cima:
while(tentativaSenha <= maximasTentativas)
Encerrando o seu código
Qualquer coisa manda aqui!
Abraços