Fórum Código de Java Arrayist #586567

08/10/2017

0

Boa tarde pessoal,
Estou com esse código Java que eu adiciono ID, Nome, Descrição e Preço de um produto, depois exibo ele por meio de um ArrayList.
Porém estou precisando ao final depois de exibir perguntar ao usuario se deseja adicionar mais, se sim ele vai ter que adicionar os produtos no final da lista, se nao ele simplesmente fecha, porém nao estou conseguindo fazer isso. Se puderem me ajudar ...

Segue o Código: (CadProduto.java)

import java.util.ArrayList;
import javax.swing.JOptionPane;
import java.util.Scanner;

public class CadProduto {
public static void main(String[] args) {
ArrayList<Produto> lista = new ArrayList<Produto>();

int id = 0;
String descricao = "";
int quantidade = 0;
float preco = 0;
String listagem = "";

Scanner input = new Scanner(System.in);

int cont = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o número de produtos que deseja adicionar: "));



for(int i=0; i<cont; i++) {


id = Integer.parseInt(JOptionPane.showInputDialog("ID: "));
descricao = JOptionPane.showInputDialog(null, "Descrição: ");
quantidade = Integer.parseInt(JOptionPane.showInputDialog(null, "Quantidade: "));
preco = Float.parseFloat(JOptionPane.showInputDialog(null, "Preço: "));
Produto p = new Produto(id, descricao, quantidade, preco);
lista.add(p);
}

for(Produto p: lista) {
listagem = listagem + p + "\\n";
}

JOptionPane.showMessageDialog(null, listagem);

String aux = JOptionPane.showInputDialog(null, "Deseja adicionar mais produtos:\\n 1-Sim \\n 2-Não ");



}
}


Produto.java:
public class Produto {
private int id;
private String descricao;
private int quantidade;
private Float preco;

public Produto() {
}

public Produto(int id, String descricao, int quantidade, Float preco) {
this.id = id;
this.descricao = descricao;
this.quantidade = quantidade;
this.preco=preco;
}

public void setId(int id) {
this.id=id;
}

public int getId() {
return this.id;
}

public void setDescricao(String id) {
this.descricao=descricao;
}

public String getDescricao() {
return this.descricao;
}

public void setQuantidade(int quantidade) {
this.quantidade=quantidade;
}

public int getquantidade() {
return this.quantidade;
}

public void setPreco(Float preco) {
this.preco=preco;
}

public Float getPreco() {
return this.preco;
}

public String toString() {
return this.id + " | " +
this.descricao + " | " +
this.quantidade + " | " +
this.preco;
}
}



Desde já agradeço :)
Matheus Modolo

Matheus Modolo

Responder

Posts

10/10/2017

Leandro Chiodini

Bom dia amigo,
Neste seu caso você deseja repetir tudo novamente se ao questionar se o usuario deseja cadastrar mais produtos certo?
Caso essa for a resposta o que esta faltando ai é uma estrutura de repetição para executar este comando que você deseja.
Veja que quando você questiona se ele deseja cadastrar mais produtos ele ja esta fora de qualquer estrutura de repetição com isso o proximo passo que o java entende é continuar passando linha por linha.

O que você pode fazer?
Você pode colocar esta pergunta dentro de um laço while por exemplo e cada vez que a resposta desta pergunta for sim, passar novamente pelo bloco de codigo que vai desde o questionamento de quantidade.

Ou você pode também, fazer diferente e questionar o usuario a cada inserção de produto, ou seja ele vai inserir um produto e você ja questiona ele se ele deseja cadastrar outra produnto, assim você pode cadastrar quantos produtos necessarios sem que o cliente pré estipule um determinado numero de produtos.
Vejo o codigo abaixo.

ArrayList<Produto> lista = new ArrayList<Produto>();
		
		int id = 0; 
		String descricao = "";	
		int quantidade = 0;
		float preco = 0;	
		String listagem = "";
		Scanner input = new Scanner(System.in);
		int aux = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar um novo produto?:\\\\n 1-Sim \\\\n 2-Não "));
		
		while(aux == 1) {


			id = Integer.parseInt(JOptionPane.showInputDialog("ID: "));
			descricao	= JOptionPane.showInputDialog(null, "Descrição: ");
			quantidade	= Integer.parseInt(JOptionPane.showInputDialog(null, "Quantidade: "));
			preco	= Float.parseFloat(JOptionPane.showInputDialog(null, "Preço: "));
			Produto p = new Produto(id, descricao, quantidade, preco);
			lista.add(p);
			  
			  aux = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar um novo produto?:\\\\n 1-Sim \\\\n 2-Não "));
			  
			}

			for(Produto p: lista) {
			listagem = listagem + p + "\\\\n";
			}
			
			JOptionPane.showMessageDialog(null, listagem);



Espero ter ajudado a te dar uma luz.

[]´s
Chiodini
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar