O nextInt() não consome a quebra de linha quando você pressiona o ENTER, o único método da classe Scanner que consome a quebra de linha é o nextLine().
Troque as suas chamadas ao ler.nextInt() por Integer.parseInt(ler.nextLine()).
Fiz o teste em um vetor de inteiro funciona normalmente porem de caracter “String” o erro da repetição persiste.
staroski
Posta o seu código atual.
Marcelo980
packageIA;/** * * @author Marcelo Henrique */importjava.util.Scanner;publicclassAuxiliar{privatestaticintResp=0;privatestaticintRespExibir=0;privatestaticintResposta;staticintn=100;staticStringSetor[]=newString[n];staticStringNome[]=newString[n];staticStringObservacao[]=newString[n];staticScannerler=newScanner(System.in);privateintRespostaMenu;privatestaticintquantOS;privateinti;privateintOpcao2Menu;publicString[]getSetor(){returnSetor;}publicvoidsetSetor(String[]setor){Setor=setor;}publicString[]getNome(){returnNome;}publicvoidsetNome(String[]nome){Nome=nome;}publicString[]getObservacao(){returnObservacao;}publicvoidsetObservacao(String[]observacao){Observacao=observacao;}privatevoidAdicionar(){do{for(intcont=0;cont<1;cont++){System.out.println("Digite o Nome do Solicitante :");Nome[cont]=ler.nextLine();System.out.println("Digite o Setor do Solicitante :");Setor[cont]=ler.nextLine();System.out.println("Digite a Observação do Serviço :");Observacao[cont]=ler.nextLine();}System.out.println("Deseja Adicionar Mais Alguma < 1-Sim / 2-Nao>");Resposta=ler.nextInt();}while(Resposta!=2);Opcao2Menu=0;}publicvoidBuscarPorTodas(){for(intcont=0;cont<=i;cont++){System.out.println("Nome Solicitante : "+Nome[cont]);System.out.println("Setor : "+Setor[cont]);System.out.println("Observações : "+Observacao[cont]+"\n");}}privatevoidBuscarPorNumero(){System.out.println("Esta com um total de :"+i+" Numeros de OS");do{System.out.println("Deseja Visualizar Qual OS ? ");intcont=ler.nextInt();System.out.println("Nome Solicitante : "+Nome[cont]);System.out.println("Setor : "+Setor[cont]);System.out.println("Observações : "+Observacao[cont]+"\n");System.out.println("Deseja Visualizar outra OS <1- Sim / 2- Nao>");Resp=ler.nextInt();}while(Resp!=1);}privatevoidBuscarPorNome(){for(intcont=0;cont<i;cont++){System.out.println("Nome :"+Nome[cont]+"\n");}}privatevoidBuscarPorSetor(){for(intcont=0;cont<i;cont++){System.out.println("Setor :"+Setor[cont]+"\n");}}publicvoidMenuExibir(){if(i<1){System.out.println("Opção invalida !!!"+"Ainda nao foi cadastrado nenhuma OS no Sistema !\n");Opcao2Menu=1;}if(i>=1){do{System.out.println("#----------------------------Menu----------------------------------#");System.out.println("# Seja Bem Vindo #");System.out.println("# #");System.out.println("# 1- Buscar OS por Numero #");System.out.println("# 2- Visualizar todas as OS #");System.out.println("# 3- Visualizar Lista de todas as OS por Nome #");System.out.println("# 4- Visualizar Lista de todas as OS por Setor #");System.out.println("# 5- Sair #");System.out.println("#------------------------------------------------------------------#");System.out.println("Digite a opcao desejada para visualizar");RespExibir=ler.nextInt();switch(RespExibir){case1:BuscarPorNumero();MenuExibir();break;case2:BuscarPorTodas();MenuExibir();break;case3:BuscarPorNome();MenuExibir();break;case4:BuscarPorSetor();MenuExibir();break;case5:Menu();break;default:System.out.println("Opção Invalida !!!");}}while(RespExibir!=5);}}privatevoidEditar(){if(i<1){System.out.println("Opção Invalida !!!"+"Ainda nao foi cadastrado nenhuma OS no Sistema !\n");Opcao2Menu=1;}if(i>=1){do{System.out.println("Degite o Numero da OS que voce deseja editar ");intcont=ler.nextInt();System.out.println("Nome Solicitante : "+Nome[cont]);System.out.println("Setor : "+Setor[cont]);System.out.println("Observações : "+Observacao[cont]+"\n");System.out.println("Deseja Editar outra OS <1- Sim / 2- Nao>");Resp=ler.nextInt();}while(Resp!=2);}}publicvoidExcluir(){if(i<1){System.out.println("Opção invalida !!"+"Ainda nao foi cadastrado nenhuma OS no Sistema !\n");Opcao2Menu=1;}if(i>=1){do{System.out.println("Degite o Numero da OS que voce deseja Excluir ");intcont=ler.nextInt();if(Nome[cont]==""){System.out.println("OS Não Existe!");Menu();}else{Nome[cont]="";Setor[cont]="";Observacao[cont]="";System.out.println("OS Excluida com sucesso \n");}System.out.println("Deseja Excluir outra OS <1- Sim / 2- Nao>");Resp=ler.nextInt();}while(Resp!=2);}}privatevoidMenu(){do{System.out.println("#---------------Menu---------------#");System.out.println("# Seja Bem Vindo #");System.out.println("# #");System.out.println("# 1- Adicionar OS #");System.out.println("# 2- Vizualizar #");System.out.println("# 3- Editar #");System.out.println("# 4- Excluir #");System.out.println("# 5- Sair #");System.out.println("#----------------------------------#");RespostaMenu=ler.nextInt();switch(RespostaMenu){case1:Adicionar();Menu();break;case2:MenuExibir();Menu();break;case3:Editar();Menu();break;case4:Excluir();Menu();break;case5:System.out.println("Saindo do Sistema ...");System.exit(10);break;default:System.out.println("Opção invalida ");}}while(RespostaMenu!=3);}publicstaticvoidmain(String[]args){AuxiliarIA=newAuxiliar();IA.Menu();}}
staroski2 likes
Poxa, seu código continua usando o ler.nextInt().
Como já foi explicado, o ler.nextInt() não consome a quebra de linha.
Então essa quebra de linha fica guardada em um buffer até que seja chamado o método ler.nextLine().
Você tem duas alternativas:
Substituir todas suas chamadas do ler.nextInt() por Integer.parseInt(ler.nextLine())
Sempre chamar o ler.nextLine() imediatamente após ter chamado o ler.nextInt()
Marcelo980
Esse e o código anterior ainda não tive tempo de alterá-lo, pois estava no trabalho quando vc me solicitou o código, Mas ja fiz a alteração funcionou perfeitamente Obg. Segue abaixo o Codigo Corrigido.
Att.: Marcelo Henrique
packageIA;/** * * @author Marcelo Henrique */importjava.util.Scanner;publicclassAuxiliar{privatestaticintResp=0;privatestaticintRespExibir=0;privatestaticintResposta;staticintn=100;staticStringSetor[]=newString[n];staticStringNome[]=newString[n];staticStringObservacao[]=newString[n];staticScannerler=newScanner(System.in);privateintRespostaMenu;privatestaticintquantOS;privateinti;privateintOpcao2Menu;publicString[]getSetor(){returnSetor;}publicvoidsetSetor(String[]setor){Setor=setor;}publicString[]getNome(){returnNome;}publicvoidsetNome(String[]nome){Nome=nome;}publicString[]getObservacao(){returnObservacao;}publicvoidsetObservacao(String[]observacao){Observacao=observacao;}privatevoidAdicionar(){do{for(i=0;i<1;i++){System.out.println("Digite o Nome do Solicitante :");Nome[i]=ler.nextLine();System.out.println("Digite o Setor do Solicitante :");Setor[i]=ler.nextLine();System.out.println("Digite a Observação do Serviço :");Observacao[i]=ler.nextLine();}System.out.println("Deseja Adicionar Mais Alguma < 1-Sim / 2-Nao>");Resposta=Integer.parseInt(ler.nextLine());}while(Resposta!=2);Opcao2Menu=0;}publicvoidBuscarPorTodas(){for(intcont=0;cont<=i;cont++){System.out.println("Nome Solicitante : "+Nome[cont]);System.out.println("Setor : "+Setor[cont]);System.out.println("Observações : "+Observacao[cont]+"\n");}}privatevoidBuscarPorNumero(){System.out.println("Esta com um total de :"+i+" Numeros de OS");do{System.out.println("Deseja Visualizar Qual OS ? ");intcont=ler.nextInt();System.out.println("Nome Solicitante : "+Nome[cont]);System.out.println("Setor : "+Setor[cont]);System.out.println("Observações : "+Observacao[cont]+"\n");System.out.println("Deseja Visualizar outra OS <1- Sim / 2- Nao>");Resp=Integer.parseInt(ler.nextLine());}while(Resp!=1);}privatevoidBuscarPorNome(){for(intcont=0;cont<i;cont++){System.out.println("Nome :"+Nome[cont]+"\n");}}privatevoidBuscarPorSetor(){for(intcont=0;cont<i;cont++){System.out.println("Setor :"+Setor[cont]+"\n");}}publicvoidMenuExibir(){if(i<1){System.out.println("Opção invalida !!!"+"Ainda nao foi cadastrado nenhuma OS no Sistema !\n");Opcao2Menu=1;}if(i>=1){do{System.out.println("#----------------------------Menu----------------------------------#");System.out.println("# Seja Bem Vindo #");System.out.println("# #");System.out.println("# 1- Buscar OS por Numero #");System.out.println("# 2- Visualizar todas as OS #");System.out.println("# 3- Visualizar Lista de todas as OS por Nome #");System.out.println("# 4- Visualizar Lista de todas as OS por Setor #");System.out.println("# 5- Sair #");System.out.println("#------------------------------------------------------------------#");System.out.println("Digite a opcao desejada para visualizar");RespExibir=Integer.parseInt(ler.nextLine());switch(RespExibir){case1:BuscarPorNumero();MenuExibir();break;case2:BuscarPorTodas();MenuExibir();break;case3:BuscarPorNome();MenuExibir();break;case4:BuscarPorSetor();MenuExibir();break;case5:Menu();break;default:System.out.println("Opção Invalida !!!");}}while(RespExibir!=5);}}privatevoidEditar(){if(i<1){System.out.println("Opção Invalida !!!"+"Ainda nao foi cadastrado nenhuma OS no Sistema !\n");Opcao2Menu=1;}if(i>=1){do{System.out.println("Degite o Numero da OS que voce deseja editar ");intcont=ler.nextInt();System.out.println("Nome Solicitante : "+Nome[cont]);System.out.println("Setor : "+Setor[cont]);System.out.println("Observações : "+Observacao[cont]+"\n");System.out.println("Deseja Editar outra OS <1- Sim / 2- Nao>");Resp=Integer.parseInt(ler.nextLine());}while(Resp!=2);}}publicvoidExcluir(){if(i<1){System.out.println("Opção invalida !!"+"Ainda nao foi cadastrado nenhuma OS no Sistema !\n");Opcao2Menu=1;}if(i>=1){do{System.out.println("Degite o Numero da OS que voce deseja Excluir ");intcont=Integer.parseInt(ler.nextLine());if(Nome[cont]==""){System.out.println("OS Não Existe!");Menu();}else{Nome[cont]="";Setor[cont]="";Observacao[cont]="";System.out.println("OS Excluida com sucesso \n");}System.out.println("Deseja Excluir outra OS <1- Sim / 2- Nao>");Resp=Integer.parseInt(ler.nextLine());}while(Resp!=2);}}privatevoidMenu(){do{System.out.println("#---------------Menu---------------#");System.out.println("# Seja Bem Vindo #");System.out.println("# #");System.out.println("# 1- Adicionar OS #");System.out.println("# 2- Vizualizar #");System.out.println("# 3- Editar #");System.out.println("# 4- Excluir #");System.out.println("# 5- Sair #");System.out.println("#----------------------------------#");RespostaMenu=Integer.parseInt(ler.nextLine());switch(RespostaMenu){case1:Adicionar();Menu();break;case2:MenuExibir();Menu();break;case3:Editar();Menu();break;case4:Excluir();Menu();break;case5:System.out.println("Saindo do Sistema ...");System.exit(10);break;default:System.out.println("Opção invalida ");}}while(RespostaMenu!=3);}publicstaticvoidmain(String[]args){AuxiliarIA=newAuxiliar();IA.Menu();}}