Questão nº 37
Questão de Tecnologia da Informação · FGV MPGO Servidores 2022 (nº 37)
Observe o código C# a seguir.
namespace MyApplication
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; --i < 5; i++)
{
Console.WriteLine(i);
}}}}
Assinale o conteúdo exibido no dispositivo de saída.
- AO número -1 repetido indefinidamente. (alternativa correta)
- BOs números 0, 1, 2, 3, 4.
- COs números 0, 1, 2, 3, 4 repetidos cinco vezes.
- DOs números 0, 1, 2, 3, 4, 5.
- EOs números 1, 2, 3, 4, 5.
Resposta comentada
Gabarito Alternativa A
O laço for em C# tem três partes: inicialização; condição; incremento. A condição é testada antes de cada iteração. Aqui, --i decrementa i antes de comparar com 5. Como i começa em 0, na primeira verificação --i torna i = -1, e -1 < 5 é verdadeiro. Dentro do loop, imprime -1. Depois, o incremento i++ torna i = 0, mas na próxima verificação --i torna i = -1 de novo, e o ciclo se repete para sempre, imprimindo sempre -1.
- (A) Correta: O número
-1é impresso indefinidamente, pois--isempre decrementa para-1antes do teste, e-1 < 5é sempre verdadeiro, criando um loop infinito. - (B) Incorreta: A sequência
0,1,2,3,4seria esperada se a condição fossei < 5sem o pré-decremento, mas aqui--ialtera o valor antes do teste. - (C) Incorreta: Não há repetição de blocos de números; o valor impresso é sempre o mesmo (
-1), nunca avança. - (D) Incorreta: Incluiria o
5, mas o loop nunca chega a valores positivos, pois--iforçaipara negativo a cada iteração. - (E) Incorreta: A sequência
1,2,3,4,5exigiria incremento antes do teste, mas aqui o pré-decremento anula o incremento do final do corpo.
Armadilha da banca: O distrator mais tentador é a letra B, pois muitos alunos leem --i < 5 como i < 5 e ignoram que o operador -- modifica a variável antes da comparação. A pegadinha está no pré-decremento (--i), que faz i virar -1 já na primeira verificação, e o i++ do final do corpo nunca consegue avançar o valor para positivo, pois o teste sempre o derruba de volta para -1.
Fonte: FGV MPGO Servidores 2022 Analista em Informática (Caderno Tipo 1). Reproduzida para fins de estudo.