Pessoal preciso de uma ajuda no meu código, consegui encontrar os nomes lidos ACHEI mas não consegui acertar com o else NAO ACHEI só esta faltando isso ,
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String[] nomes = new String[10];
for(int i = 0; i < nomes.length; i++) {
System.out.println("Digite o" + (i+i) + " º nome: ");
String nomepessoa = scan.next();
}
System.out.println("Agora digitar um nome a ser buscado: ");
String nomebuscar = scan.next();
boolean encontrou=false;
for(int i = 0; i < nomes.length; i++) {
if(nomes[i] != null && nomes[i].equalsIgnoreCase(nomebuscar)) {
encontrou=true;
}
}
if(encontrou=true) {
System.out.println("ACHEI");
}else {
System.out.println("NAO ACHEI");
}
}
Vc lê os nomes, mas não guarda eles no array, o correto deveria ser:
for (int i = 0; i < nomes.length; i++) {
System.out.println("Digite o " + (i + 1) + "º nome: ");
nomes[i] = scan.next();
}
Ah, também mudei o i + i por i + 1, que acho que é o que vc queria. E arrumei os espaços (adicionei um antes do número, e retirei o outro antes do º).
Além, é claro, dos outros erros já apontados acima.
Outra coisa que eu mudaria é:
boolean encontrou = false;
for (int i = 0; i < nomes.length; i++) {
if (nomes[i] != null && nomes[i].equalsIgnoreCase(nomebuscar)) {
encontrou = true;
break; // já encontrou, pra que continuar procurando?
}
}
Adicionei o break para interromper o for, afinal, se já encontrou o nome, não tem porque continuar procurando.
Outro detalhe é que eu mudaria para nextLine() em vez de next().
Isso dá diferença se o nome tiver espaços. Por exemplo, se digitar “Fulano de Tal”, o primeiro nome será apenas “Fulano”, o segundo será “de” e o terceiro será “Tal” (ele nem espera vc digitar, já seta os nomes direto, veja).
Já usando nextLine(), ele lê corretamente “Fulano de Tal” como um único nome.