Criei uma solução para menu que tem um while que pede o cep e tambem criei um array List que armazena os ceps e gera um arquivo json tambem criei no try cath um fanally que mesmo se da um erro o programa continua.
public class Menu {
private int opcao = 0;
ConexaoDb conexaoDb = new ConexaoDb();
Scanner leitura = new Scanner(System.in);
public Menu() throws IOException {
inciar();
}
private void menu() {
System.out.println("*************************************");
System.out.println("Sejá bem vindo ao Buscador de Endereço");
System.out.println("""
** Digite a opção **
1- Buscar seu endereço
2- SAIR
""");
System.out.println("********Digite a Opçao valida*******");
System.out.println("*************************************");
}
private void inciar() throws IOException {
try {
while (opcao != 2) {
menu();
opcao = Integer.parseInt(leitura.nextLine());
if (opcao == 2) {
break;
} else if (opcao < 1 || opcao > 2) {
System.out.println("Opção Inválida");
} else {
System.out.println("Digite seu Cep");
var endereco = leitura.nextLine();
Cep ceps = conexaoDb.consultar(endereco);
CepJson gerador = new CepJson();
List<Cep> listaEnd = new ArrayList<>();
listaEnd.add(ceps);
gerador.endJson(listaEnd);
System.out.println(listaEnd);
}
}
}catch (RuntimeException e){
System.out.println(e.getMessage());
System.out.println("Finalizar o Programa");
}finally {
while (opcao != 2) {
menu();
opcao = Integer.parseInt(leitura.nextLine());
if (opcao == 2) {
break;
} else if (opcao < 1 || opcao > 2) {
System.out.println("Opção Inválida");
} else {
System.out.println("Digite seu Cep");
var endereco = leitura.nextLine();
Cep ceps = conexaoDb.consultar(endereco);
CepJson gerador = new CepJson();
List<Cep> listaEnd = new ArrayList<>();
listaEnd.add(ceps);
gerador.endJson(listaEnd);
System.out.println(listaEnd);
}
}
}
System.out.println("Obrigado por usar este Programa! :)");
leitura.close();
}
}