Problema na procura com matriz de objetos

2 respostas
T

Galera, é o seguinte:

tenho uma classe chamada Procurar Livro que utilizo para encontrar o livro num determinado Array (matriz) de objetos. O problema está sendo na hora de procurar. Se ele encontrar o livro procurado achou = 1 e ele me retorna J que é a posição que está o livro. O livro está sendo encontrado mas ao invés de ele sair pois o achou == 1 ele continua incrementando J. Alguem pode me ajudar? Vlw…

Obs: na aplicação utilizo J-1, pois é a real posição do livro, já que de qualquer maneira o J é incrementado nessa classe.

public class ProcurarLivro {

    public ProcurarLivro() {
    }

    public static int Find(int i, Livro[] book)
    {
        int j = 0;
        if(i==0){ // i é a quantidade de livros que tenho
                JOptionPane.showMessageDialog(null, "Nenhum livro cadastrado");
                return 0;
        }
        else{
            int codigo = Integer.parseInt(JOptionPane.showInputDialog("Código: "));//entra com o código do livro a ser procurado
            int achou=0;
            
            do{
                if(book[j].getIDBook()==codigo)
                {                     
                       JOptionPane.showMessageDialog(null, "Livro: " + book[j].getTitulo() + "\nAssunto: "+ book[j].getAssunto() + "\nAutor: "+ book[j].getAutor() + "\nEditora: " + book[j].getEditora() + "\nQuantidade: "+book[j].getQtde());
                       achou = 1;                    
                }                
                j++;                    
            }while(achou!=1);

        }
        return j;
    }
}

2 Respostas

khaoz

Observe que ao setar o Achou para 1 o fluxo do código vai para o j++ antes de verificar a condição do while.

Kassiane_Pretti

Ele não consegue sair do loop???

Ou analisa a questão que khaoz falou…

Criado 18 de fevereiro de 2008
Ultima resposta 18 de fev. de 2008
Respostas 2
Participantes 3