Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

danielswater

Achar nome no vetor

Recommended Posts

E ai pessoal beleza?

Estou fazendo um exercicio em java que tem que verificar se o nome a ser buscado encontra se no vetor. O problema é que sempre acha o nome, mesmo que nao tenha o nome armazenado. Segue o código

 


import javax.swing.*;

public class vetor {

public static void main(String arg[])

{

String busca;
String vet[]=new String[10];

for(int i=1;i<=9;i++){
vet[i]=JOptionPane.showInputDialog("preencha o vetor com os nomes: ");
}

busca=JOptionPane.showInputDialog("digite o nome a ser procurado: ");

int i=0;

while((busca.equals (vet[i])) && (i<=9)){
i=i+1;
}

if(busca.equals (vet[i]))
JOptionPane.showMessageDialog(null,"o nome nao foi achado");

else

JOptionPane.showMessageDialog(null,"o nome foi achado");

}

}

Alguem pode me dar uma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa.. beleza

 

Sinceramente não entendi o que você queria fazer com o codigo abaixo:

int i=0;

 

while((busca.equals (vet)) && (i<=9)){

i=i+1;

}

 

 

porque se nome( busca ) não for igual ao primeiro elemento vetor o ciclo nunca será executado... Veja abaixo uma das possiveis implementações..

 

 

// depois de ler os dados acrescente o seguinte código dentro do main
if(encontrou(busca, vet)) 
  JOptionPane.showMessageDialog(null,"Nome Encontrado");
else
  JOptionPane.showMessageDialog(null,"Nome nao encontrado");

// fora do main o método -encontrou-

static boolean encontrou(String busca, String[] vet) {
   boolean result = false;
   for(String element: vet) {
      if(element.equals(busca)) {
        result = true;
        break;
      }
   }
   return result;
}

Abraço.. poste as dúvidas... http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa.. beleza

 

Sinceramente não entendi o que você queria fazer com o codigo abaixo:

 

int i=0;

 

while((busca.equals (vet)) && (i<=9)){

i=i+1;

}

 

 

porque se nome( busca ) não for igual ao primeiro elemento vetor o ciclo nunca será executado... Veja abaixo uma das possiveis implementações..

 

 

// depois de ler os dados acrescente o seguinte código dentro do main
if(encontrou(busca, vet)) 
  JOptionPane.showMessageDialog(null,"Nome Encontrado");
else
  JOptionPane.showMessageDialog(null,"Nome nao encontrado");

// fora do main o método -encontrou-

static boolean encontrou(String busca, String[] vet) {
   boolean result = false;
   for(String element: vet) {
      if(element.equals(busca)) {
        result = true;
        break;
      }
   }
   return result;
}

Abraço.. poste as dúvidas... http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif

 

 

E que em lógica assim da certo :D, como estou começando agora em Java, não tenho muito a manha da coisa.

Não daria para fazer isso sem usar função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser pode colocar tudo num método só.

 

// depois de ler os dados acrescente o seguinte código dentro do main

   boolean result = false;
   for(String element: vet) {
      if(element.equals(busca)) {
        result = true;
        break;
      }
   }
   if(result) 
      JOptionPane.showMessageDialog(null,"Nome Encontrado");
   else
      JOptionPane.showMessageDialog(null,"Nome nao encontrado");

Aproveitando o código do Giovanny.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma sugestão. Seria melhor se o método retornasse um número inteiro com a posição do elemento no vetor. Um tipo lógico dará uma resposta muito vaga à pesquisa.

private int pesquisa(String texto) {
   int tamanho = vetor.lenght;
   for(int i = 0; i < tamanho; i++) {
      if(vetor[i].equals(texto)) {
         return i;
      }
   }
   return -1;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.