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

[Sugestão] Entenda o porque "Teve copa em 2018" não foi impresso...

Se você assim como eu ficou se perguntando porquê "Teve copa em 2018" não foi impresso, uma vez que, com "anoCopa" = 2014, a condição do while ainda seria true e por tanto, deveria imprimir mais uma soma de 4 anos... eu vou explicar...

Eu estava vindo aqui fazer esta pergunta mas acabei descobrindo no meio do caminho.

A resposta é:

A ordem das ações dentro do "while" não permite que o ano de 2018 seja impresso, vejamos:

while(anoCopa <= 2016) {

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

Como foi escrito, o while primeiro mostra o valor atual do anoCopa e depois acrescenta mais 4 anos... Por tanto em 2014, o "while" imprime "Teve copa em 2014" e em seguida muda o valor de anoCopa para 2018... por tanto, a partir daí o loop não se repete mais, pois a condição "anoCopa <= 2016" passa a retornar false.

No entanto, vale ressaltar que, se por um acaso você inverter a ordem destas ações, primeiro somando 4 anos e depois imprimindo:

while(anoCopa <= 2016) {

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

2 problemas ocorrerão: 1 - o ano de 1930 não será exibido; 2 - o programa exibirá "Teve copa em 2018" o que não faria sentido pois, naquele contexto, a data limite era 2016.

Resumindo, neste caso, a ordem dos fatores SIM, afeta o "produto"!

1 resposta
solução!

Olá Eduardo, tudo bem?

Meus parabéns por ter pensando no meio do caminho o motivo de não ter sido impresso o “Teve copa em 2018”, além do mais devo dizer: que ótimo texto! Você conseguiu esclarecer uma dúvida comum sobre o loop while de forma simples e objetiva. Você mostrou que está desenvolvendo uma boa compreensão da linguagem e usou um cenário divertido para exemplificar seu argumento, e de fato no mundo da programação muitas das vezes é como uma receita que lemos de cima para baixo, passo a passo, ou seja, não devemos colocar colocar o bolo no forno e depois pedir para pré aquecer o forno, não faz muito sentido, e como bem por ti “ a ordem dos fatores SIM, afeta o "produto"! ”.

Continue se dedicando e explorando, o mundo da programação é fascinante e você com toda a certeza é muito bem vindo a explorar cada vez mais.

Sucesso

Um grande abraço e até mais!