[Solved] A ‘if else’ code block returns the ‘else’ sentence even doesn’t need


The problem is that you keep searching until the end of the list. So, even if you found a matching item, the next elements may be different from the one you seek, and therefore the else would be true.
What you need to do, is display the “not found” message only if no matching element was found:
Use a boolean flag found like this:

    int opcao = Integer.parseInt(JOptionPane.showInputDialog("Digite o ID para a busca"));
        boolean found = false;

        //'for' para percorrer o vetor
        for (Produto objProduto : vetorProdutos2) {
         //if para verificar se o ID digitado para busca contém no vetor
         if (objProduto.getId() == opcao) {
                     JOptionPane.showMessageDialog(null,
      "\nID: " + objProduto.getId()+"\nDescrição: " + objProduto.getDescricao()
                                                    + "\nEstoque: " + objProduto.getEstoque() + "\nPreço: "
                                                    + objProduto.getPreço() + "\nStatus: " + objProduto.getStatus());
                   found = true;
               } 
         }
 if (! found)
 {
  JOptionPane.showMessageDialog(null, "Produto não encontrado");
}

0

solved A ‘if else’ code block returns the ‘else’ sentence even doesn’t need