Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Quero no final exibir o total de copas, esta dando NaN

<meta charset="utf-8">

<script>

function pulaLinha() {

 document.write("<br>")
}

function mostrarLinha(frase) {

  document.write(frase); 
  pulaLinha();
}
var totalCopas = dataLimite - anoCopa;
var dataLimite = parseInt(prompt("Entre com a data limite"));
var anoCopa = 1930
while (anoCopa <= dataLimite) {

  mostrarLinha("Teve copa em: " + anoCopa);
  anoCopa = anoCopa + 4
}

 mostrarLinha("Total de copas: " + totalCopas);

</script>
1 resposta
solução!

Oi Gabriel, a ordem das suas variáveis está errada. O javascript faz a leitura de cima pra baixo e você tem o seguinte:

var totalCopas = dataLimite - anoCopa;
var dataLimite = parseInt(prompt("Entre com a data limite"));
var anoCopa = 1930

Na primeira variável, totalCopas, você esta usando a variável anoCopa para um cálculo. Como no momento em que você invoca aquela conta a variável anoCopa e dataLimite ainda não existem, ambas as variáveis utilizada estão com o valor undefined, o que gera o NaN (Not a Number).

Para solucionar o seu código, mova ambas as variáveis para cima da totalCopas:

var dataLimite = parseInt(prompt("Entre com a data limite"));
var anoCopa = 1930
var totalCopas = dataLimite - anoCopa;

Com isso, sua função já irá funcionar. No entando, existe um erro na sua lógica. A copa so ocorre a cada 4 anos, então, o total deveria ser somado somente no ano em que ocorrer uma copa.

var anoCopa = 1930
var dataLimite = parseInt(prompt("Entre com a data limite"));
var totalCopas = 0;
while (anoCopa <= dataLimite) {
  mostrarLinha("Teve copa em: " + anoCopa);
  anoCopa = anoCopa + 4
  totalCopas++;
}

Explicando o código, você tem o ano base da copa, 1930, que serve de base para o cálculo. Depois tem a dataLimite que o sistema recebe, que é um ano, vamos assumir 2018.

O sistema ainda não sabe como calcular o totalCopas porque ainda não tem a lógica pra isso, então declaramos ele como 0, o valor vai ser acrescido a cada copa que for encontrado.

Abaixo do anoCopa = anoCopa +4 eu adicionei o contador para cada ocorrencia encontrada a cada 4 anos, o ++ à frente da variável indica que na próxima chamada invocação do anoCopa, +1 valor vai ser acrescido. Então, para cada iteração, +1 vai ser adicionado à ela.

Se o valor da data for 2018, logo, você vai ter as 23 copas como total.