Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que é diferente?

Não entendo por que o resultado(-861720576) deste:

     Console.WriteLine("O calculador de fatoriais");
        int fatorial = 4;
        for (int i = 1; i < fatorial; i++)
        {
            fatorial *= i;
        }
        Console.Write(fatorial);
        Console.ReadLine(); 

é diferente do resultado(24) deste:

            Console.WriteLine("O calculador de fatoriais");
        int fatorial = 4;
        for (int i = 1; i < 4; i++)
        {
            fatorial *= i;
        }
        Console.Write(fatorial);
        Console.ReadLine();
1 resposta
solução!

Níkolas, em seu primeiro exemplo o 'for' está sendo iterado de i = 1 até i < fatorial

for (int i = 1; i < fatorial; i++)

Porém dentro de seu loop a varíavel 'fatorial' está sendo incrementada a cada loop através dessa linha

fatorial *= i;

Ou seja, o seu loop acaba tendendo ao infinito, pois sua variável de controle do loop muda a cada iteração.

Isso não acontece no seu segundo exemplo, já que seu loop neste caso, irá rodar até 'i' ser menor que 4.

for (int i = 1; i < 4; i++)

Espero ter ajudado!