- Dando uma nova chance no retorno de mês
import 'dart:io';
// Função para validar a entrada do usuário
bool validarEntrada(String entrada, int mes) { //função bool que retorna true ou false
try {
// Verifica se é um número e está no intervalo correto
if (mes >= 1 && mes <= 12) {
return true;
} else {
print('');
print('ERRO: O número digitado está fora do intervalo (1-12).');
return false;
}
} catch (e) { // função catch para tratar erros
print('');
print('ERRO: Você não digitou um número válido.');
return false;
}
}
void main() { //função principal
print('========================================');
print(' DESCOBRINDO SEU SIGNO POR MÊS');
print('========================================');
print('');
print('Digite um número de 1 a 12 para descobrir');
print('o signo predominante do mês:');
String? entrada = stdin.readLineSync();
if (entrada != null) {
try { // função try para tratar erros
int mes = int.parse(entrada);
// Valida a entrada usando a função
if (validarEntrada(entrada, mes)) {
// Processa o mês válido
switch (mes) {
case 1:
print('Janeiro');
print('');
print('Signo: Capricórnio (22/12 - 19/01)');
print('Personalidade: Disciplinado, ambicioso, responsável e determinado');
print('Pedra: Ônix ou Granada');
break;
case 2:
print('Fevereiro');
print('');
print('Signo: Aquário (20/01 - 18/02)');
print('Personalidade: Inovador, independente, humanitário e original');
print('Pedra: Ametista ou Água-marinha');
break;
case 3:
print('Março');
print('');
print('Signo: Peixes (19/02 - 20/03)');
print('Personalidade: Intuitivo, compassivo, sensível e sonhador');
print('Pedra: Água-marinha ou Ametista');
break;
case 4:
print('Abril');
print('');
print('Signo: Áries (21/03 - 19/04)');
print('Personalidade: Corajoso, energético, impulsivo e líder nato');
print('Pedra: Diamante ou Rubi');
break;
case 5:
print('Maio');
print('');
print('Signo: Touro (20/04 - 20/05)');
print('Personalidade: Paciente, leal, prático e persistente');
print('Pedra: Esmeralda ou Quartzo Rosa');
break;
case 6:
print('Junho');
print('');
print('Signo: Gêmeos (21/05 - 20/06)');
print('Personalidade: Comunicativo, versátil, curioso e adaptável');
print('Pedra: Ágata ou Citrino');
break;
case 7:
print('Julho');
print('');
print('Signo: Câncer (21/06 - 22/07)');
print('Personalidade: Protetor, emocional, intuitivo e carinhoso');
print('Pedra: Pérola ou Pedra da Lua');
break;
case 8:
print('Agosto');
print('');
print('Signo: Leão (23/07 - 22/08)');
print('Personalidade: Confiante, generoso, carismático e criativo');
print('Pedra: Rubi ou Citrino');
break;
case 9:
print('Setembro');
print('');
print('Signo: Virgem (23/08 - 22/09)');
print('Personalidade: Analítico, organizado, detalhista e prático');
print('Pedra: Safira ou Cornalina');
break;
case 10:
print('Outubro');
print('');
print('Signo: Libra (23/09 - 22/10)');
print('Personalidade: Equilibrado, diplomático, social e justo');
print('Pedra: Opala ou Turmalina Rosa');
break;
case 11:
print('Novembro');
print('');
print('Signo: Escorpião (23/10 - 21/11)');
print('Personalidade: Intenso, determinado, magnético e transformador');
print('Pedra: Topázio ou Obsidiana');
break;
case 12:
print('Dezembro');
print('');
print('Signo: Sagitário (22/11 - 21/12)');
print('Personalidade: Otimista, aventureiro, filosófico e livre');
print('Pedra: Turquesa ou Topázio Azul');
break;
default:
print('Número inválido');
break;
}
}
} catch (e) {
print('');
print('ERRO: Você não digitou um número válido.');
print('Por favor, execute o programa novamente e digite apenas números.');
}
} else {
print('');
print('ERRO: Nenhuma entrada foi fornecida.');
print('Por favor, execute o programa novamente.');
}
print('');
print('========================================');
print(' Obrigado por usar o programa!');
print('========================================');
}