Estou com um problema ao chamar o menu do switch case. Ao chamar a opção 3 do switch case do método menuCliente que se encontra na classe ServicoCliente, ele simplesmente deleta os dados. Sei que o problema está no método do menuCliente, só não sei como posso solucionar isso. Alguém pode me ajudar a resolver ?
Classe Cliente Serviço
public class ClienteServico {
RepositorioCliente clienteRepositorio = new RepositorioCliente();
public Cliente cadastrarCliente(Cliente cliente) throws Exception {
if (cliente.getNome().length() < 4) {
throw new Exception("Insira um nome com no minímo 5 caracteres");
} else if (cliente.getCpf().length() < 11 || cliente.getCpf().length() > 11) {
throw new Exception("CPF inválido. Insira um CPF com 11 caracteres");
} else {
System.out.println("Cliente cadastrado com sucesso!");
return this.clienteRepositorio.adicionarCliente(cliente);
}
}
public void listarClientes() {
if (clienteRepositorio.getRepositorioCliente().isEmpty()) {
System.out.println("Repositório vazio");
} else {
this.clienteRepositorio.listarClientes();
}
}
public void alterarCliente(Cliente cliente, int codigo) throws Exception {
if (codigo <= 0) {
throw new Exception("Código inválido!");
}
if (cliente.getCpf().length() < 11 || cliente.getCpf().length() > 11) {
throw new Exception("CPF incorreto. Informe um CPF com 11 caracteres");
}
if (!cliente.getEmail().contains("@")) {
throw new Exception("E-mail se encontra no padrão incorreto.");
}
if (!cliente.getSexo().equalsIgnoreCase("feminino") && !cliente.getSexo().equalsIgnoreCase("masculino")) {
throw new Exception("Sexo incorreto.");
} else {
this.clienteRepositorio.alterarCliente(cliente, codigo);
}
}
public void buscarClientePorCodigo(int codigo) throws Exception {
if (codigo <= 0) {
throw new Exception("Código inválido.");
} else {
System.out.println(this.clienteRepositorio.buscarClientePorCodigo(codigo));
}
}
public void menuCliente() throws Exception {
Scanner entrada = new Scanner(System.in);
System.out.println("[1] - Cadastrar Cliente");
System.out.println("[2] - Listar Clientes");
System.out.println("[3] - Voltar para o menu principal");
int novaOpcao = entrada.nextInt();
switch (novaOpcao) {
case 1:
Cliente novoCliente = new Cliente();
System.out.println("Código: ");
novoCliente.setCodigoCliente(entrada.nextInt());
System.out.println("Nome: ");
novoCliente.setNome(entrada.next());
System.out.println("Idade: ");
novoCliente.setIdade(entrada.nextInt());
System.out.println("Sexo: ");
novoCliente.setSexo(entrada.next());
System.out.println("CPF: ");
novoCliente.setCpf(entrada.next());
System.out.println("E-mail: ");
novoCliente.setEmail(entrada.next());
System.out.println("Senha: ");
novoCliente.setSenha(entrada.nextInt());
cadastrarCliente(novoCliente);
break;
case 2:
listarClientes();
break;
case 3:
menu();
break;
}
}
}
Menu
public class Menu {
public static int menu() throws Exception {
ClienteServico servicoCliente = new ClienteServico();
Scanner entrada = new Scanner(System.in);
System.out.println(" [1] - Menu do Cliente");
int opcao = entrada.nextInt();
int resp;
do {
switch (opcao) {
case 1:
servicoCliente.menuCliente();
break;
}
System.out.println("Digite 0 para voltar ao menu: ");
resp = entrada.nextInt();
} while (resp == 0);
return opcao;
}
public static void main(String[] args) throws Exception {
menu();
}
}