Ir ao conteúdo

Posts recomendados

Postado

Olá aos mestres do JavaScrip, tenho o seguinte código aplicativo_020.js:

 

var indice, qtd_Veiculos, tot_Veiculos, nome_veiculo = [];

 

E o seguinte código index.html:

<!DOCTYPE html>

<html lang="pt-BR">
<head>
    <meta charset="utf-8" />
    <title>Aprendendo Algoritmos com JavaScript</title>
</head>
<body>
    <script src="scripts/aplicativo_020.js"></script>    
    <script>
        qtd_Veiculos = parseInt(prompt("Digite a Quantidade de Veículos para Cadastrar ou -1 Para Sair:"));
        while (qtd_Veiculos != -1)
        {
            for (indice = 1; indice <= qtd_Veiculos; indice++)
            {                
                nome_veiculo[indice] = (prompt("Digite o Nome do Veículo:"));
                tot_Veiculos = (indice + 1);
            }
            qtd_Veiculos = parseInt(prompt("Digite a Quantidade de Veículos para Cadastrar ou -1 Para Sair:"));
        }
        tot_Veiculos = (tot_Veiculos -1);
        for (indice = 1; indice <= tot_Veiculos; indice++)        
        {
            document.write("O Veículo " + nome_veiculo[indice] + " tem o índice " + indice);
            document.write("<br>");
        }
    </script>
</body>
</html>

 

Estou usando vetor -array, o que acontece é o seguinte, por exemplo, digite dois veículos, quando ele retorna perguntando se quero encerrar, eu digo que quero incluir mais dois veículos, ao digitar -1 para sair, ele imprime somente os dois últimos veículos cadastrados e não 4 veículos, que deveria ser o correto, conforme figura anexa. Onde estou errando? Fico no aguardo de ajuda, muito grato.

 

Saida_JavaScript.png

Postado

Boa tarde, primeiramente vejo que ainda tem muito de linguagens mais baixo nível, como C impregnado na sua sintaxe. Tudo bem, com o tempo você perde isso.

 

Quanto ao problema, você tem um erro de lógica, o que acontece é que você está sobrescrevendo os veículos anteriores, isso se dá pelas varáveis de indice, durante o laço.

 

Segue abaixo a minha aproximação de resolução desse problema:

 

var pedindo = true;
var pedindo_numero;
var veiculos = [];

while(pedindo)
{
  quantidade = prompt("Digite a quantidade de veículos ou cancele para sair");

  if(quantidade == undefined)
  {
    // usuário cancelou o prompt
    break;
  }

  pedindo_numero = 0;

  while(pedindo_numero < quantidade)
  {
    nome_veiculo = prompt("Digite o nome do veículo número " + (pedindo_numero+1));

    if(nome_veiculo == undefined)
    {
      // usuario cancelou
      break;
    }

    veiculos.push(nome_veiculo);

    pedindo_numero ++;
  }
}

document.write("Aqui estão o seus veículos <br>");

document.write(veiculos);

 

Repare nos métodos de arrays (push e length) e tambem nos dados retornado pelo método prompt

 

Boa sorte :)

 

 

 

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...