Considere o código fonte em linguagem C, abaixo, que utiliza...

Próximas questões
Com base no mesmo assunto
Q526158 Programação
Considere o código fonte em linguagem C, abaixo, que utiliza controle de fluxo por meio de um laço de repetição while e do comando de tomada de decisão if, com objetivo de imprimir uma sequência de números terminada pela palavra

                              #include <stdio.h>
                               int main (void)
                               {
                                   int cont = 0;
                                   while (cont < 10)
                                   {   
                                         if (cont == 5) continue;
                                         printf("%d ", cont);
                                         cont=cont+1;
                                   }
                                   printf("fim\n");
                                   return 0;
                               } 



É correto afirmar que o programa está 


Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: D

A questão pede que o candidato analise um trecho de código em linguagem C e identifique o seu comportamento, principalmente no que diz respeito ao uso das estruturas de controle while e if. Para resolver essa questão, é necessário entender como funcionam os laços de repetição, as condicionais e a palavra-chave continue.

O erro do código está na execução do comando continue dentro da condicional if, que é acionado quando a variável cont é igual a 5. O comando continue faz com que o laço de repetição while interrompa a iteração atual e prossiga imediatamente para a próxima, sem executar as linhas de código subsequentes dentro do laço.

No código em questão, isso significa que toda vez que cont for igual a 5, o laço irá pular a incrementação da variável cont (cont=cont+1;), resultando em um laço infinito, pois a condição cont < 10 nunca deixará de ser verdadeira, e a variável cont nunca será incrementada além de 5.

As outras alternativas estão incorretas por vários motivos:

  • A A sugere que a sequência correta seria 0 1 2 3 4 6 7 8 9 fim, o que seria verdadeiro se a incrementação de cont ocorresse antes da instrução continue.
  • A B sugere que a sequência incluiria o número 5, o que não aconteceria devido ao continue, que pularia a impressão desse número.
  • A C sugere que a instrução cont=cont+1; está incorreta e deveria ser substituída por cont++;, mas ambas as instruções são equivalentes e válidas em C para incrementar uma variável.
  • A E sugere que o código dentro de um if deve estar entre chaves, o que não é uma necessidade em C quando há apenas uma instrução a ser executada condicionalmente, como é o caso do comando continue.

Portanto, a alternativa correta é a D, pois o uso do comando continue como está fará com que o laço se torne infinito, já que o incremento da variável cont nunca será executado quando seu valor for 5.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

O continue irá fazer com que o LOOP nunca execute a linha  cont=cont+1, tornando o laço infinito.


Bons estudos!
O comando continue ignora todo o código abaixo dele e volta novamente ao início do laço. Quando isso acontecer, de acordo com o código, quando count == 5  ele sempre irá voltar ao início do laço e nunca mais sair, gerando um laço infinito.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo