Busca de numero em um Array

3 respostas
L

Galera bom dia,

Seguinte aleatoriamente 1000 números utilizando um array bidimensional, depois preciso digitar um número e pesquisar se tem no array.

Gerei os números, porém, não estou conseguindo fazer ele buscar corretamente.

Mesmo que eu digite um número que foi gerado ele cai no “else” e informa que não foi encontrado o número:

Segue o código:


import javax.swing.JOptionPane;

public class Exercicio3_cap5 {

public static void main(String[] args) {

int [] [] numeros = new int [50] [20];
for (int linha = 0; linha < 50; linha++){
		for(int coluna = 0; coluna < 20; coluna++){
			numeros [linha] [coluna] = (int) (Math.random() * 1000);
			System.out.println(numeros[linha][coluna]);
		}
	}

	int numDigitado = Integer.parseInt(JOptionPane.showInputDialog("Digite um número para pesquisar: "));
	String mensagem="";
	for(int[] busca: numeros){
		if(busca.equals(numDigitado)){
			mensagem = "Número encontrado!";
		}
		else{
			mensagem = "Número não encontrado!";
		}

	}
	
	JOptionPane.showMessageDialog(null, mensagem);
}

}


Obrigado!

3 Respostas

C

Tente alterar o seu for para este…

... for (int[] busca : numeros) { for(int b : busca) { if (b == numDigitado) { mensagem = "Número encontrado!"; } else { mensagem = "Número não encontrado!"; } } } ...
P

Estás a percorrer todo o array e não paras quando encontras o número, continuando a ter a mensagem de “Numero não encontrado” para os seguintes. Apenas se o número que procuras for o último do array é que vai dizer “Número encontrado”.
Quando encontras o número deves parar a procura para mostrar a mensagem correta.

for(int[] busca: numeros){
   if(busca == numDigitado){
       mensagem = "Número encontrado!";
       break;    	
    } else {
       mensagem = "Número não encontrado!";
    }
}
L

Galera fiz uma junção das duas respostas e consegui resolver. Ficando assim:

for(int[] busca: numeros){

for (int b : busca){

if(b == numDigitado){

mensagem = Número encontrado!;

break;

}

else{

mensagem = “Número não encontrado!”;

}
}
	}

Obrigado. :wink:

Criado 8 de fevereiro de 2016
Ultima resposta 8 de fev. de 2016
Respostas 3
Participantes 3