← Questões de Programação

Programação · FGV · 2022

Questão comentada de Programação

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.

Gabarito: A

A questao explora um detalhe clássico de C#: a diferenca entre pre-decremento (--i) e pos-incremento (i++). No comando for, a parte do meio é testada antes de cada repeticao. Aqui, como a condicao e --i < 5, o valor de i é decrementado primeiro e so depois comparado. Partindo de i = 0, o primeiro teste vira -1 < 5, que é verdadeiro. Entao o Console.WriteLine(i) imprime -1. Em seguida, o i++ do for devolve i para 0. Na volta do loop, o --i acontece de novo, levando i para -1 outra vez. Resultado: a condicao segue verdadeira para sempre e o valor exibido é -1 repetidamente. O gabarito A esta correto porque o laço fica infinito imprimindo -1 a cada iteracao.

Continue treinando

Questões relacionadas