Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Lição 5 - Olimpíadas

Olá pessoal!

Quando eu coloco a condição no laço para parar quando for apenas igual a 2014, não funciona e funciona apenas quando altero a condição para menor igual 2014.

<script>
var anoDeOlimpiada = 1896;

while(anoDeOlimpiada == 2014) {
    alert(anoDeOlimpiada + " tem olimpíada!");
    anoDeOlimpiada = anoDeOlimpiada + 4;
}
</script>

Porquê ocorre isso?

4 respostas

Boa noite Rafael,

Isso ocorre porque sua condição que está declarada dentro do while sempre será falso, você está comparando se 1896 é igual a 2014, isso faz com que seu while não seja pecorrido e incrimentado +4 anos. Se você declarar na sua condição que ele é <= 2014, esta condição será verdadeira, fazendo assim que o loop seja executado e incrementado toda vez +4 anos.

Valeu!

Olá Rafael,

É bem isso mesmo que o Fábio descreveu. E se a sua intenção era de que o código fosse executado até que o anoDeOlimpiada == 2014 ele entraria num loop infinito, por que anoDeOlimpiada nunca terá o valor 2014 se o primeiro ano for 1896 e o incremento de 4.

Qualquer coisa, só chamar!!! ;-)

solução!

apenas exemplificando a solução comentada pelos colegas:

<script>
var anoDeOlimpiada = 1896;
while (anoDeOlimpiada < 2014) {
  alert(anoDeOlimpiada + " tem olimpíada!");
  anoDeOlimpiada += 4;
}
</script>

Caso a dúvida esteja sanada, escolha a resposta que melhor lhe ajudou e marque o tópico como resolvido a fim de evitar repetições nas respostas. Obrigado!

Obrigado pelas dicas pessoal, a questão das condições estavam meio confusas.

Agora está mais tranquilo! ;)