Boa tarde, sou iniciante em java e estou tendo um pequeno problema no código abaixo. Após escolher uma opção válida, o programa deveria terminar, mas ele faz um loop para somente na segunda vez terminar.
Segue a classe:
import java.util.*; public class Opcoes { //Solicita ao usuário escolher dentre uma das opções public int escolheOpcoes() { int opcao; boolean erro = true;//determina quando finalizar o loop Scanner sc = new Scanner(System.in); do { try { System.out.println("O que deseja fazer?"); System.out.println("( 1 ) - Criar Funcionário"); System.out.println("( 2 ) - Alterar dados do Funcionário"); System.out.println("( 3 ) - Demitir Funcionário"); System.out.println("( 4 ) - Listar Funcionários"); System.out.println("( 0 ) - Sair do Programa a qualquer momento"); System.out.printf("Digite uma opcão: "); opcao = Integer.parseInt(sc.nextLine()); System.out.println("A opçao escolhida foi: "+ opcao); if(opcao == 0) { System.out.println("\nO programa será finalizado"); erro = false; }//fim do if if(opcao < 5 && opcao > 0) { System.out.println("A função ainda não está implementada\n"); erro = false; }//fim do if if(opcao > 4) { System.out.println("Escolha um número entre 0 e 4\n"); }//fim do if }//fim do try catch(NumberFormatException e) { System.out.println("Escolha um número entre 0 e 4\n"); opcao = 0; }//fim do catch } while (erro);//fim do...while return opcao; }//fim do método }// fim da classe
Agora a classe de teste:
class FuncionarioTD {
public static void main(String[] Args) {
Opcoes opcao = new Opcoes();
opcao.escolheOpcoes();
System.out.println(opcao.escolheOpcoes());
}
}
Resolvido: Na classe de teste, estava chamando a classe Opções duas vezes:
opcao.escolheOpcoes();
System.out.println(opcao.escolheOpcoes());