no seguinte trecho de código
private void Adicionar (){
do{
System.out.println("Deseja Adicionar Quantas OS ? ");
quantOS = ler.nextInt();
for(i =0; i < quantOS; i++){
System.out.println(“Digite o Nome do Solicitante :”);
Nome[i] = ler.nextLine();
System.out.println(“Digite o Setor do Solicitante :”);
Setor[i] = ler.nextInt();
System.out.println(“Digite a Observação do Serviço :”);
Observacao[i] = ler.nextLine();
}
System.out.println(“Deseja Adicionar mais Alguem < 1-Sim / 2-Nao>”);
Resposta = ler.nextInt();
}while (Resposta != 2);
}
Ao inves de pegar apenas um valor Exemplo o Nome[i]
apresenta :
Digite o Nome do Solicitante :
Digite o Setor do Solicitante :
E faz a leitura no Setor[i] ao invés de Nome[i]
Tudo na mesma linha de codigo, ao passar pro proximo do mesmo jeito :
Digite a Observação do Serviço :
Digite o Nome do Solicitante :
o que pode esta causando esse erro ? e algum lixo de memoria ? Eu sou iniciante em java. 
Aguardo Resposta Att. Marcelo Henrique
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()).
3 curtidas
OK Muito Obrigado pela diga @staroski
Fiz o teste em um vetor de inteiro funciona normalmente porem de caracter “String” o erro da repetição persiste.
Posta o seu código atual.
[code] package IA;
/**
*
-
@author Marcelo Henrique
*/
import java.util.Scanner;
public class Auxiliar {
private static int Resp = 0;
private static int RespExibir = 0;
private static int Resposta ;
static int n = 100;
static String Setor[] = new String [n];
static String Nome[] = new String [n];
static String Observacao[] = new String[n];
static Scanner ler = new Scanner(System.in);
private int RespostaMenu;
private static int quantOS;
private int i;
private int Opcao2Menu;
public String[] getSetor() {
return Setor;
}
public void setSetor(String[] setor) {
Setor = setor;
}
public String[] getNome() {
return Nome;
}
public void setNome(String[] nome) {
Nome = nome;
}
public String[] getObservacao() {
return Observacao;
}
public void setObservacao(String[] observacao) {
Observacao = observacao;
}
private void Adicionar (){
do{
for(int cont = 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;
}
public void BuscarPorTodas (){
for(int cont =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");
}
}
private void BuscarPorNumero(){
System.out.println("Esta com um total de :"+i+" Numeros de OS");
do{
System.out.println("Deseja Visualizar Qual OS ? ");
int cont = 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);
}
private void BuscarPorNome (){
for(int cont = 0; cont < i; cont++ ){
System.out.println("Nome :"+Nome[cont]+"\n");
}
}
private void BuscarPorSetor (){
for(int cont = 0; cont < i; cont++ ){
System.out.println("Setor :"+Setor[cont]+"\n");
}
}
public void MenuExibir(){
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){
case 1:
BuscarPorNumero();
MenuExibir();
break;
case 2:
BuscarPorTodas();
MenuExibir();
break;
case 3:
BuscarPorNome();
MenuExibir();
break;
case 4:
BuscarPorSetor();
MenuExibir();
break;
case 5:
Menu();
break;
default :
System.out.println("Opção Invalida !!!");
}
}while(RespExibir != 5);
}
}
private void Editar (){
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 ");
int cont = 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);
}
}
public void Excluir(){
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 ");
int cont = 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);
}
}
private void Menu (){
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){
case 1:
Adicionar();
Menu();
break;
case 2:
MenuExibir();
Menu();
break;
case 3:
Editar();
Menu();
break;
case 4:
Excluir();
Menu();
break;
case 5:
System.out.println("Saindo do Sistema ...");
System.exit(10);
break;
default :
System.out.println("Opção invalida ");
}
}while(RespostaMenu != 3);
}
public static void main(String[] args) {
Auxiliar IA = new Auxiliar();
IA.Menu();
}
}[/code]
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()
2 curtidas
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
[code]package IA;
/**
*
-
@author Marcelo Henrique
*/
import java.util.Scanner;
public class Auxiliar {
private static int Resp = 0;
private static int RespExibir = 0;
private static int Resposta ;
static int n = 100;
static String Setor[] = new String [n];
static String Nome[] = new String [n];
static String Observacao[] = new String[n];
static Scanner ler = new Scanner(System.in);
private int RespostaMenu;
private static int quantOS;
private int i;
private int Opcao2Menu;
public String[] getSetor() {
return Setor;
}
public void setSetor(String[] setor) {
Setor = setor;
}
public String[] getNome() {
return Nome;
}
public void setNome(String[] nome) {
Nome = nome;
}
public String[] getObservacao() {
return Observacao;
}
public void setObservacao(String[] observacao) {
Observacao = observacao;
}
private void Adicionar (){
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;
}
public void BuscarPorTodas (){
for(int cont =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");
}
}
private void BuscarPorNumero(){
System.out.println("Esta com um total de :"+i+" Numeros de OS");
do{
System.out.println("Deseja Visualizar Qual OS ? ");
int cont = 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);
}
private void BuscarPorNome (){
for(int cont = 0; cont < i; cont++ ){
System.out.println("Nome :"+Nome[cont]+"\n");
}
}
private void BuscarPorSetor (){
for(int cont = 0; cont < i; cont++ ){
System.out.println("Setor :"+Setor[cont]+"\n");
}
}
public void MenuExibir(){
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){
case 1:
BuscarPorNumero();
MenuExibir();
break;
case 2:
BuscarPorTodas();
MenuExibir();
break;
case 3:
BuscarPorNome();
MenuExibir();
break;
case 4:
BuscarPorSetor();
MenuExibir();
break;
case 5:
Menu();
break;
default :
System.out.println("Opção Invalida !!!");
}
}while(RespExibir != 5);
}
}
private void Editar (){
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 ");
int cont = 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);
}
}
public void Excluir(){
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 ");
int cont = 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);
}
}
private void Menu (){
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){
case 1:
Adicionar();
Menu();
break;
case 2:
MenuExibir();
Menu();
break;
case 3:
Editar();
Menu();
break;
case 4:
Excluir();
Menu();
break;
case 5:
System.out.println("Saindo do Sistema ...");
System.exit(10);
break;
default :
System.out.println("Opção invalida ");
}
}while(RespostaMenu != 3);
}
public static void main(String[] args) {
Auxiliar IA = new Auxiliar();
IA.Menu();
}
}[/code]