Por que que esse programa não retorna o Achei mesmo quando coloco igual?

package slidevetordois;

import javax.swing.JOptionPane;

/**
*

  • @author phili
    */
    public class Slidevetordois {

    public static void main(String[] args) {
    String vet[] = new String[5];
    String tentativa = null;

     for (int i = 0; i < vet.length; i++) {
         vet[i] = (JOptionPane.showInputDialog(null, "Digite os primeiros nomes: "));
         System.out.println("Nome: " + vet[i]);
    
     }
    
     for (int i = 0; i < vet.length; i++) {
         tentativa = (JOptionPane.showInputDialog(null, "Digite o nome que deseja saber se está incluso no array: "));
         if (tentativa.equals(vet[i])) {
             JOptionPane.showMessageDialog(null, "Achei");
         } else {
             JOptionPane.showMessageDialog(null, "Não Achei");
         }
    
     }
     System.out.println("Nome Arriscado: " + tentativa);
    

    }

}

O erro esta na atribuição da variável tentativa ela esta dentro do for.
Coloca essa variável para fora do for! Porque toda vez que o laço vai repetir o comando, ele vai pedir atributo para a variável! E nunca o programa vai varrer a lista toda assim!

o “certo” poderia ser assim:

/**

  • Definição do atributo fora do for!
    */
    tentativa = (JOptionPane.showInputDialog(null, "Digite o nome que deseja saber se está incluso no array: "));

      for (int i = 0; i < vet.length; i++) {
    

//A verificação na possição
if (tentativa.equals(vet[i])) {
JOptionPane.showMessageDialog(null, “Achei”);

            //O break vai quebrar o laço se achar                
            break;
        } else if(i == vet.length) {
            //Esse comada vai ser executado somente se a lista for varrida por completo e não achar o nome
            JOptionPane.showMessageDialog(null, "Não Achei");
        }
    }