galera to com três dúvidas bem bestas mas nao consigo sair do canto..
tenho que fazer um programa que oferece um menu inicial ao usuario, ele escolhe uma opçao para adicionar um compromisso na sua agenda,
porem após todo o processamento ele nao retorna ao menu principal, abaixo segue o codigo pra uma melhor visualizaçao..
public class RaQuelendar1{
public static void main(String[] args) throws Exception{
Agenda1 agenda = new Agenda1();
Scanner input = new Scanner(System.in);
System.out.println(" MENU INICIAL \n" +
"a) Adicionar um compromisso na agenda;\n" +
"b) Remover um compromisso;\n" + //cancelar
"c) Pegar o primeiro (de acordo com a data) comprimisso confirmado;\n" +
"d) Listar todos os comprimissos de um certo tipo;\n" +
"e) Listar todos os compromissos dessa semana.;\n" + //BONUS
"f) Listar todos os compromissos;\n" +
"g) Confirmar um compromisso;\n" +
"h) Para sair.\n");
System.out.print("Digite aqui a sua opção: ");
String opcao = input.nextLine().toLowerCase();
while (true){
if (opcao.equals("a")){
String descricao, local;
int dia, mes, ano;
Classificacao tipo;
Prioridade prioridade;
System.out.println("\na) Adicionar um compromisso na agenda.");
while (true){
System.out.print("Descricão: ");
descricao = input.nextLine();
if (!(descricao==null||descricao.equals("")))
break;
System.out.println("Descrição inválida");
}
while (true){
System.out.print("Local: ");
local = input.nextLine();
if (!(local==null||local.equals("")))
break;
System.out.println("Local inválido");
}
while (true){
System.out.println("Classificação: 1 - AULA, 2 - CINEMA, 3 - REUNIAO");
System.out.print("Digite aqui a sua opção: ");
String alternativa = input.nextLine();
if (alternativa.equals("1")){
tipo = Classificacao.AULA;
break;
}
else if (alternativa.equals("2")){
tipo = Classificacao.CINEMA;
break;
}
else if(alternativa.equals("3")){
tipo = Classificacao.REUNIAO;
break;
}
System.out.println("OPÇÃO INVÁLIDA, DIGITE APENAS 1, 2 OU 3.");
}
while (true){
System.out.println("Prioridade: 1 - ALTA, 2 - MEDIA, 3 - BAIXA");
System.out.print("Digite aqui a sua opção: ");
String alternativa = input.nextLine();
if (alternativa.equals("1")){
prioridade = Prioridade.ALTA;
break;
}
else if (alternativa.equals("2")){
prioridade = Prioridade.MEDIA;
break;
}
else if (alternativa.equals("3")){
prioridade = Prioridade.BAIXA;
break;
}
System.out.println("OPÇÃO INVÁLIDA, DIGITE APENAS 1, 2 OU 3.");
}
while (true){
System.out.println("Digite abaixo as especificações da data.");
while (true){
System.out.print("Dia: ");
dia = input.nextInt();
if (!(dia<1 || dia>31))
break;
System.out.println("Dia inválido.");
}
while (true){
System.out.print("Mês: ");
mes = input.nextInt();
mes--;
if (!(mes<0 || mes>11))
break;
System.out.println("Mês inválido.");
}
while (true){
System.out.println("Ano: ");
ano = input.nextInt();
break;
}
break;
}
Calendar data = new GregorianCalendar(dia, mes, ano);
Compromisso compromisso = new Compromisso(descricao, local, data, tipo, prioridade);
agenda.addCompromisso(compromisso);
System.out.println(compromisso);
System.out.println("Compromisso adicionado com sucesso!");
}
if (opcao.equals("h"))
System.exit(1);
}
}
}
ele volta para o procedimento do item a e já imprime a mensagem de erro e logo depois o prompt, queria saber tambem como eliminar isso,
e por ultimo tem a data, até agora to empancado nisso, vou dar um exemplo da saída..
Digite abaixo as especificações da data.
Dia: 23
Mês: 4
Ano: 2010
aula, ufcg - 30/09/0028 00:00
Compromisso adicionado com sucesso!
queria ajeitar essa data e nao sei o que diabos está acontecendo, qualquer ajuda será bem vinda :)
