Boa noite galera,
Estou desenvolvendo um código para cadastro de produtos e venho encontrando algumas dificuldades. Não irei postar todo o código aqui por ser uma dúvida mais direcionada.
Scanner ler = new Scanner(System.in);
System.out.print("Nome: ");
nomeProd[indice] = ler.nextLine();
System.out.print("Descricao do produto: ");
descricaoProd[indice] = ler.nextLine();
System.out.print("Encerrar cadastro? ");
escolha = ler.next();
Este trecho de código está dentro de um loop, o índice está sendo incrementado normalmente e não causa nenhum erro. O programa roda normalmente na primeira entrada do loop. O que me deixa realmente confuso é quando eu respondo que não quero encerrar o cadastro e ele retorna para esta linhaSystem.out.print("Nome: ");
nomeProd[indice] = ler.nextLine();
O programa não pára pra ler o nome do produto e já imprime esta linha e parando aí para esperar a entrada de dados seguinte.System.out.print("Descricao do produto: ");
descricaoProd[indice] = ler.nextLine();
Já tentei alterar o trecho “nomeProd[indice] = ler.nextLine();” para “nomeProd[indice] = ler.next();” mas aí o programa não pára pra ler a descrição do produto e imprime a próxima linha (que seria para ler o estoque).
Não posso modificar este trecho “descricaoProd[indice] = ler.nextLine();” para “descricaoProd[indice] = ler.next();” pois dá um erro de exceção InputMismatchException quando digito várias palavras como “Cadeira simples de madeira”. Realmente não sei o que acontece aí.
Minha explicação deve ter ficado meio confusa, mas se alguém conseguir entender e puder me ajudar eu agradeço.
Valeu gente!