Ir para conteúdo

POWERED BY:

Arquivado

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

danielswater

Procura em vetor

Recommended Posts

E ai pessoas beleza?

Seguinte, to fazendo um exercício aqui que tem que cadastrar dvds e depois buscar por um estilo muscial, porém, não estou conseguindo achar nada, sempre me da que nada foi cadastrado :angry:

segue o codigo:

 

import javax.swing.*;
public class CadastroDVD {

	public static void main(String[] args) {
		
		Produto dvd[]=new Produto[5];
		int op;
		int pd=0;
		
		while(true){
			
			op=Integer.parseInt(JOptionPane.showInputDialog("1- Cadastra DVD \n 2- Busca por estilo \n 3- Sair"));
			
			//Começa o cadastro de DVDs
			
			switch(op){
			case 1:
				dvd[pd]=new Produto();
				dvd[pd].setCodigo(Integer.parseInt(JOptionPane.showInputDialog("Digite o código do DVD")));
				dvd[pd].setEstilo(JOptionPane.showInputDialog("Digite o estilo musical"));
				dvd[pd].setNomeCantor(JOptionPane.showInputDialog("Digite o nome do artista"));
				dvd[pd].setTitulodvd(JOptionPane.showInputDialog("Digite o titulo do DVD"));
				pd=pd+1;
							
				break;
				
				//Faz a busca do DVD por estilo musical e mostra todos os artistas cadastrados
				
			case 2:
				String busca=JOptionPane.showInputDialog("Digite o estilo musical desejado");
				for(int i=0; i<pd; i++){
					if(busca.equalsIgnoreCase(dvd[i].getEstilo()))
						JOptionPane.showMessageDialog(null,"Código " + "" + dvd[i].getCodigo() + "" + "Estilo: " + "" + 
								dvd[i].getEstilo() + "" + "Artista: " + "" + dvd[i].getNomeCantor() + "" + "Título: " + ""
								+ dvd[i].getTitulodvd());
				
					else{
						JOptionPane.showMessageDialog(null,"Nenhum estilo cadastrado");
					}
				}
				break;
				
			case 3:
				System.exit(0);
			}
		}
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, aew Daniel

 

Nesse código parece que tudo esta certo, oque faz com que sempre a mensagem de "Nenhum estilo cadastrado" seja mostrado é como o seu if do case 2 foi montado. Nele você checa se naquele dvd (começando do 1) o estilo procurado é igual ao estilo dele, SE NÃO FOR você já esta imprimindo a mensagem, sem antes verificar o restando do vetor. Sacou?

O certo seria mais ou menos isso:

isso é só um esboço de como deve ficar em...

1 - declare uma variavel booleana para o controle, tipo, boolena achouEstilo = false;

2 - no if do case 2, mude o valor da váriavel para true quando algum estilo for encontrado

3 - retire o else.

4 - apos o fechamento do for coloque faça a verificação da variavel, if(achouEstilo == false){ mostra mensagem... }

 

Se mesmo assim não der certo, então eu sugiro que você pratique uns métodos de debug, tipo, imprima o valor do estilo do dvd cadastrado e da variável busca e veja se ambos são iguais, faça isso apenas para ver se está tudo acontecendo como você acha que está... XD

 

flws

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.