Observe o código C# a seguir. namespace MyApplication {     ...

Próximas questões
Com base no mesmo assunto
Ano: 2022 Banca: FGV Órgão: MPE-GO Prova: FGV - 2022 - MPE-GO - Analista em Informática |
Q1912768 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.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - O número -1 repetido indefinidamente.

Para compreender a questão, é necessário ter um bom entendimento sobre as estruturas de repetição em programação, especificamente o laço for na linguagem C#. Este laço é composto por três componentes principais: a inicialização, a condição de continuação e o incremento ou decremento.

No código apresentado, temos a seguinte estrutura de laço for:

for (int i = 0; --i < 5; i++)
{
    Console.WriteLine(i);
}

O que torna este laço incomum é a expressão --i < 5 na condição de continuação do laço. O operador -- antes da variável i é chamado de decremento pré-fixado, o que significa que i é decrementado antes de ser avaliado na condição.

Na primeira iteração, a variável i é inicializada com 0. Entretanto, antes de verificar se i < 5, a operação --i é executada, resultando em i valendo -1. Como -1 ainda é menor que 5, o bloco de código dentro do for é executado, e o número -1 é impresso.

Após a execução do bloco de código, a terceira parte do laço for, o incremento, é executado, que é i++. Isso incrementa i de volta para 0. Contudo, na próxima verificação de condição, i é novamente decrementado para -1 antes da comparação, o que faz com que a condição permaneça verdadeira. Este processo se repete indefinidamente, resultando em uma impressão contínua do número -1.

Portanto, a alternativa correta é a letra A, pois o código entrará em um loop infinito imprimindo o número -1 indefinidamente.

Clique para visualizar este gabarito

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