[RESOLVIDO]pesquisa no array

2 respostas
maiden
import java.util.Scanner;
public class PesquisaArray {

	public static void main(String[] args) {
			
			Scanner sc = new Scanner(System.in);
			
			String[] nome = new String[5];
		
			String pesq;
			String resp;
			boolean acha;
			
			for(int i = 0; i < 5; i++){
				
				System.out.println("informe o nome: ");
				nome[i] = sc.nextLine();
			}
			
			resp = "SIM";
			
			while(resp == "SIM"){
				
				System.out.print("Escreva o nome a ser pesquisado: ");
				pesq = sc.nextLine();
				
				int i = 0;
				acha = false;
				
				while(i <= 5 && acha == false){
					//pesq == nome[i]     (pesq.equals( nome[i] )) 
					if(pesq.equals( nome[i] ))
						acha = true;
					else 
						i++;
						
				}
					if(acha == true)
						System.out.println(pesq + " foi localizada na posição " + i);
					else
						System.out.println(pesq + " nao foi localizado");
				
					System.out.print("Deseja continuar? ");
					resp = sc.next();
				
			}
		}
	}

Esse código é para fazer uma pesquisa em um array de 5 posições

erros:

Quando faz a pesquisa e tem o nome que estar pesquisando na sua pesquisa ele executa corretamente na linha de código:

while(i <= 5 && acha == false){ //pesq == nome[i] (pesq.equals( nome[i] )) if(pesq.equals( nome[i] )) acha = true;

mas quando uma pesquisa que não tem o nome que estar pesquisando gera um erro:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at algoritmoPesquisa.PesquisaArray.main(PesquisaArray.java:34)

que o erro estar na linha de código
if(pesq.equals( nome[i] ))

Não tenho menor ideia do que seja alguém poderia me dar uma luz!

2 Respostas

x111

Primeiro nunca faça acha == true ou acha == false, é uma péssima pratica. Utiilze somente a variável para verdadeiro ,como if(achou), ou if(!achou) para false.

O problema está nessa linha:

while(i <= 5 && acha == false) O vetor tem 5 elementos mas ele vai de 0 até 4 então ou você faz:

while((i <= 4) && (!acha)) ou

while(i < 5 && (!acha))
maiden

valau deu certo!

ia morrer doido e não sabia disso!

Criado 13 de agosto de 2013
Ultima resposta 13 de ago. de 2013
Respostas 2
Participantes 2