Considere o código fonte em linguagem C, abaixo, que utiliza...
#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á
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 porcont++;
, 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
Bons estudos!
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo