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

Exercício ano_copa com "if"

Como o exercício era automático, iria mostrar que teve copa nos anos de 1942 e 1946. Porém, como não foi realizada a copa nesses anos por causa da Segunda Guerra, pensei em usar o if para escrever outro texto apenas nesses anos.

<meta charset="UTF-8">

<script>

    function pulaLinha() {
            document.write("<br>");
    }

        function escreva(frase) {
                document.write(frase);
                pulaLinha();
    }

    var anoCopa = 1930

    while(anoCopa <= 2020) {

        escreva("Teve copa em " + anoCopa);
        anoCopa = anoCopa + 4;    

                if(anoCopa == 1942) {

                escreva("Em " + anoCopa + " não teve copa! (Segunda Guerra Mundial)")
                anoCopa = anoCopa + 4
                } 
                if(anoCopa == 1946) {
                    escreva("Em " + anoCopa + " não teve copa! (Segunda Guerra Mundial)")
                        anoCopa = anoCopa + 4 
                } else {
                        escreva("Teve copa em " + anoCopa);
                        anoCopa = anoCopa + 4;
                }
    }

    escreva("FIM!");

</script>

Quebrei um pouco a cabeça e o exercício dos números de 30 a 40 me ajudou, mas tem uma forma melhor de chegar a esse resultado?

1 resposta
solução!

Oi Alisson, tudo certo?

Bem legal o seu código! A única dica que eu dou é você utilizar o operador OR para fazer as verificações do ano 1942 e 1946, dessa forma:

if(anoCopa == 1942 || anoCopa == 1946) {
        escreva("Em " + anoCopa + " não teve copa! (Segunda Guerra Mundial)")
        anoCopa = anoCopa + 4
}

Dessa maneira, ele entrará nessa condicional se o ano for 1942 ou o ano for 1946. Assim, você não precisa fazer duas verificações (verificar se o ano é 1942 e 1946 em condicionais diferentes).

Além disso, a primeira instrução do seu while é escrever "Teve copa em". Portanto, mesmo se não tiver copa, ele irá printar essa instrução. E no else da sua verificação, ele também printará essa instrução, fazendo com que há repetição desnecessária. Recomendo fazer dessa maneira:

while(anoCopa <= 2020) {  
     if(anoCopa == 1942 || anoCopa == 1946) {
        escreva("Em " + anoCopa + " não teve copa! (Segunda Guerra Mundial)")
        anoCopa = anoCopa + 4
      } else {
           escreva("Teve copa em " + anoCopa);
           anoCopa = anoCopa + 4;
      }
}

No código acima, ele escreverá "Teve copa em", caso os anos não forem 1942 ou 1946.

Espero ter ajudado, bons estudos!