Ajeitando o while do fluxo principal. Falta: Otimizar código; Verificar com mais cuidado a existência de possíveis erros.