6
respostas

Problemas com repetição.

Olá. Tentei incrementar um pequeno sistema de cadastro de login e senha. O problema é que o programa ficar retornando erro de possível loop infinito. Quando isolei o sistema de cadastro ele cessou de acusar o erro, mas eu gostaria de implementar o sistema de cadastro. Alguém pode me ajudar? Segue o código:


  var cadastroLogin = prompt("Cadastre um login.");
  var cadastroSenha = prompt("Cadastre uma senha.");

  alert('Cadastro realizado com sucesso.');

  var maximoTentativas = 3;
  var contador = 0;

  var loginCadastrado = cadastroLogin; // QUANDO SUBSTITUO ESSA PARTE POR UM LOGIN E SENHA FIXOS O CÓDIGO PARA DE ACUSAR O POSSIBILIDADE DE LOOP INFINITO.
  var senhaCadastrada = cadastroSenha;

  while(contador < maximoTentativas){

    var login = prompt('Digite seu login.');
    var senha = prompt('Digite sua senha.');

  if (loginCadastrado == login && senhaCadastrada == senha){

    alert('Bem vindo aluno Alura.');
    contador = maximoTentativas;

    } else {

      if (contador == 3){

        alert('Máximo de tentativas atingido.');

      } else {

        alert('Login ou senha inválidos.');
        }
    }
    contador++;
  }
6 respostas

Olá eu comecei a pouco tempo em logica de programação então não sei se é o certo a se fazer mas eu adicionei dois break; um no primeiro if e outro no segundo if para quando chegar nessa parte do codigo parar e voltar do começo do while, o codigo ficou assim :

<script>

    var cadastroLogin = prompt("Informe seu nome de usuario para o cadastro ");
    var cadastroSenha = prompt("Informe sua senha para o cadastro ");

    alert("Cadastro realizado com sucesso ");

    var maximoTentativas = 3;
    var contador = 1;

    var loginCadastrado = cadastroLogin;
    var senhaCadastrada = cadastroSenha;

    while (contador <= maximoTentativas) {

        var login = prompt("Informe seu nome de usuario ");
        var senha = prompt("Informe sua senha ");

        if (loginCadastrado == login && senhaCadastrada == senha) {

            alert("Bem vindo a Alura :D");
            contador = maximoTentativas;
            break;
        }
        else {
            if (contador == 3) {
                alert("Maximo de tentativas atingido ");
                break;

            }
            else {
                alert("Login ou senha invalido ");
                contador++;

            }
        }

    }



</script>

Olá Victor, seu código não está aparecendo. Você precisa coloca-lo entre as aspas dupla.

Pronto agora foi kkkk obrigado pela dica kkk

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Então Victor, testei seu código e ele acusa o mesmo erro que o meu código acusa. Continua dizendo que há um potencial loop infinito. Só para saber estou fazendo esses testes no site p5 js.

Então mudei um pouco o codigo e testei no p5js e ele acusou um possivel loop infinito do mesmo jeito mais ai adicionei o //noprotect antes do while e rodei o programa e funcionou normalmente, mas vou continuar tentando tirar esse erro de loop infinito o novo codigo que eu fiz ficou assim.


    var cadastroLogin = prompt("Informe seu nome de usuario para o cadastro ");
    var cadastroSenha = prompt("Informe sua senha para o cadastro ");

    alert("Cadastro realizado com sucesso ");

    var maximoTentativas = 3;
    var contador = 1;

    var loginCadastrado = cadastroLogin;
    var senhaCadastrada = cadastroSenha;
    var existe = false;

    while (contador <= maximoTentativas) {

        var login = prompt("Informe seu nome de usuario ");
        var senha = prompt("Informe sua senha ");

        if (loginCadastrado == login && senhaCadastrada == senha) {

            alert("Bem vindo a Alura :D");
            contador = 4;
            existe = true;

        }
            if (contador == 3) {
                alert("Maximo de tentativas atingido ");
                existe = true;





            }
            if (existe == true) {
                break;
            }

            else if (existe == false) {
                alert("Login ou senha invalido ");
                contador++;

            }


    }

Realmente, quando adiciona o noprotect ele funciona normalmente. AInda não encontrei uma solução pra esse loop funcionar direito. Agradeço toda a ajuda que vc está disponibilizando Victor.