Olá Guilherme, tudo bem com você?
Existem alguns pequenos errinhos que impossibilitam esse comportamento, por exemplo:
if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
alert("Bem-vindo ao sistema " + loginInformado);
tenta=3;
}
Veja que o nosso while
vai executar enquanto tenta
for menor ou igual que 3, então nesse caso, mesmo que o usuário acerta, ainda teremos que 3 <= 3
, ou seja, teremos mais uma execução
Para corrigir isso, como tenta
começa em 0, podemos dizer que while ( tenta < 3)
, dessa forma 3 não é menor que 3, e teremos apenas uma execução quando acertar :)
A segunda questão é essa:
tenta=logadeNovo() + 1;
Veja que você esta dizendo que tenta equivale ao retorno da função + 1, o que não faz muito sentido :)
Então precisamos separar:
Aumentamos a quantidade de tentativas:
tenta = tenta + 1;
alert("Login Inválido. Tente Novamente");
Executamos a função novamente
tenta = tenta + 1;
alert("Login Inválido. Tente Novamente");
logaDeNovo()
E uma última observação em relação a função logaDeNovo()
, veja que você fazendo:
var loginInformado = prompt("Informe seu login");
var senhaInformada = prompt("Informe sua senha");
function logadeNovo(){
var loginInformado = prompt("Informe seu login");
Esse loginInformado dentro da função logaDeNovo
é totalmente diferente do loginInformado que está no começo do nosso programa, quando utilizamos a palavra var estamos definido uma nova variável, no caso do seu programa queremos apenas mudar o valor, então faríamos:
function logadeNovo(){
loginInformado = prompt("Informe seu login");
senhaInformada = prompt("Informe sua senha");
}
Conseguiu compreender? Qualquer coisa estou a disposição :)
Abraços e Bons Estudos!