Como ler 10 nomes e guardar em um Array, Achei e Nao Achei

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");
	}
}

}

1 curtida

Saudações meu querido.

Coloque um While dentro do código de buscar nome!

Aqui estás a abribuir valor e não a comparar. O que tu queres é (nota o duplo igual)
if(encontrou == true) {

Ou, de forma mais simples:
if(encontrou) {

Aqui você está atribuindo true para a variável encontrou, então sempre vai entrar no if.

Faça simplesmente assim:

if (encontrou) {
    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.