3
respostas

Execução do for/while

No meu programa para calcular a média das idades dos familiares eu coloquei uma function "mostra()" para imprimir na tela o nome e a idade de cada pessoa individualmente.

Eu esperava que após entrar com o nome e idade da primeira pessoa o programa imprimisse na tela a função "mostra()" que está dentro do "for" e que depois disso pedisse o nome e idade da segunda pessoa e assim por diante.

Ao invés disso ela pede todos os nomes e todas as idades e depois imprime tudo de uma vez. Queria saber se tem como fazer da maneira que eu pretendia. Só uma pequena dúvida para enriquecimento do aprendizado.

<script>

function pulaLinha() {

    document.write("<br>");
    document.write("<br>");

}

function mostra(frase) {

    document.write(frase);
    pulaLinha();

}

var numeroFamiliares = parseInt(prompt("Quantos familiares você tem?"));

var idadeTotal = 0;

for (var contador = 1; contador <= numeroFamiliares; contador++) {

var nomeFamiliar = prompt("Qual o nome do seu " + contador + "° familiar?");

var idadeFamiliar = parseInt(prompt("Qual a idade do(a) " + nomeFamiliar + "?"));

mostra(nomeFamiliar + " tem " + idadeFamiliar + " anos de idade");

var idadeTotal = idadeTotal + idadeFamiliar;

}

mostra("A media das idades de todos os seus familiares é " + idadeTotal / numeroFamiliares);

</script>
3 respostas

Outro exemplo, esse código eu copiei direto da vídeo aula

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
}

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
}

var numeroPensado = Math.round(Math.random() * 10);

var tentativas = 1;

while(tentativas <= 3) {

    var chute = parseInt(prompt("Digite seu chute!"));

    if(chute == numeroPensado) {

        mostra("Você acertou!");
    } else {

        mostra("Você errou, o número pensado foi " + numeroPensado);
    }

    tentativas++;
}

</script>insira seu código aqui

Na vídeo aula, quando o professor entra com um valor no comando prompt o programa imediatamente imprime o resultado na tela e depois aciona o prompt uma segunda vez.

No meu navegador ele pede os três valores para só depois imprimir tudo de uma vez. Alguém sabe o porquê disso?

Olá, Bruno. Tudo bem?

Não sei como o prompt é mostrado aí para você, mas aqui ele permite visualizar o que está sendo escrito na pagina, olha como fica:

2021-03-12-104916_1366x768_scrot

O mostra vai imprimir o conteúdo no documento principal da página, no html que é renderizado pelo navegador, e está sendo mostrado no fim de cada iteração.

O problema não parece ser com o código, já que aqui está funcionando como esperado, talvez seja algo com o seu navegador. Qual você está usando?

Boa tarde Vitor

Eu estou usando o Chrome. Testei no Mozilla e deu certo e no Edge foi igual ao Chrome.

Não é uma dúvida muito importante, mas fiquei pensando isso poderia afetar o funcionamento de um outro código mais complexo no futuro.