O código abaixo não faz corretamente a leitura do teclado, eu tentei inicialmente usando a classe Scanner mas tá dando na mesma que essa aí. Eu desconfio que seja algo relativo ao buffer do teclado, tentei o System.out.flush() mas também não deu. Só sei que nada sei, aí vim aqui perguntar como resolver o problema pq tá algo fora da minha capacidade de imaginação.
Acontece o seguinte até a parte de pedir o valor tá ok, mas assim q eu dou enter ele roda o switch 3x no valor default e pára pedindo novamente outro valor.
Se precisar eu posso as outras classes aqui pra vcs darem uma analizada, mas não tem nenhum problema nelas, mas pra compilar, óbvio q é necessário x)
[code]import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class TesteBiblioteca {
private static void Menu(){
System.out.println(“1 - Adicionar livro”);
System.out.println(“2 - Dados de um livro”);
System.out.println(“3 - Todos os livros”);
System.out.println(“4 - Excluir livro”);
System.out.println(“5 - Fecha execução”);
}
private static void Imprime (Livros liv){
System.out.println (“Título:”+liv.getTitulo());
System.out.println ("Autor: "+liv.getAutor());
System.out.println ("Editora: "+liv.getEditora());
}
public static void main(String[] args) throws IOException {
Biblioteca biblioteca = new Biblioteca();
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int opcao;
do {
Menu();
opcao = input.read();
switch (opcao){
case 1:
String titulo, autor, editora;
System.out.println("Digite o nome do livro:");
titulo = input.readLine();
System.out.println("Digite o nome do autor:");
autor = input.readLine();
System.out.println("Digite o nome da editora:");
editora = input.readLine();
Livros aux = new Livros (titulo, autor, editora);
if (biblioteca.addLivro(aux)==false)
if (biblioteca.addLivro(aux.getTitulo(),aux.getAutor(),aux.getEditora())==false)
System.out.println("Ocorreram erros ao adicionar o livro");
break;
case 2:
String title;
System.out.println("Digite o nome do livro");
title = input.readLine();
Livros aux2 = biblioteca.getLivro(title);
if (aux2 !=null){
Imprime(aux2);
}
else System.out.println ("O livro não existe");
break;
case 3:
Livros[] aux3 = biblioteca.getListaLivros();
for (int i=0; i<aux3.length;i++){
Imprime(aux3[i]);
}
break;
case 4:
String rtitle;
System.out.println("Digite o nome do livro a ser excluído");
rtitle = input.readLine();
if (biblioteca.removeLivro(rtitle)==false){
if (biblioteca.removeLivro(biblioteca.getLivro(rtitle))==false)
System.out.println("Ocorreu um erro na exlusão do livro");
}
break;
case 5:
System.out.println("Fechado execução");
break;
default:
System.out.println ("Opção inválida");
break;
}
} while (opcao!=5);
}
}[/code]