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

Resolvi sem usar o while ( ) utilizando apenas funções e economizando processamento .

int senhaGerada = 0;
int senhaChamada = 0;

void exibirmenu()
{
    Console.WriteLine($"1 - Gerar nova senha\r\n2 - Chamar próxima senha\r\n3 - Sair");

    Console.WriteLine("Digite uma opção : ");
    int opcaoMenu = Convert.ToInt32(Console.ReadLine());

    switch (opcaoMenu)
    {
        case 1:
            gerarSenha();
            break;
        case 2:
            chamarSenha();
            break;
        case 3:
            ecerrandoSistema();       
            break;
        default:
            Console.WriteLine($"\n| Opçãp inválida ! |\n");
            break;
    }
}

void gerarSenha()
{
    senhaGerada++;
    Console.WriteLine($"\n| Senha gerada: {senhaGerada.ToString("D3")} |\n");    
    exibirmenu();
}

void chamarSenha()
{
    if (senhaChamada >= senhaGerada)
    {
        Console.WriteLine($"\n| Não há mais senhas geradas |\n");
        exibirmenu();
    }
    senhaChamada++;
    Console.WriteLine($"\n| Senha chamada: {senhaChamada.ToString("D3")} |\n");
    exibirmenu();
}

void ecerrandoSistema()
{
    Console.WriteLine($"\n| Encerrando sistema. |\n");
    Environment.Exit(0);
}

exibirmenu();
1 resposta
solução!

Oi, Cauan! Como vai?

Seu jeito de organizar as funções ficou bem direto e chamou atenção pela fluidez entre as chamadas, deixando o fluxo mais limpo sem o uso do while. Ficou claro que você entendeu bem a proposta da atividade.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!