Olá!
Tenho um exercício simples para fazer mas estou com um pouco de dificuldade. O objetivo do exercício é solicitar ao usuário digitar uma lista de pedidos, com a descrição do pedido, quantidade e valor e no final devo imprimir tudo na tela. Fiz da seguinte maneira:
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
//define a quantidade de produtos para achar o limite para os vetores
String limite = JOptionPane.showInputDialog("Informe a quantidade de produtos que compõe o pedido");
int lim = Integer.parseInt(limite);
//Criação dos vetores que serão utilizados no cadastro usando o número informado acima
String nome;
String descricao[] = new String[lim];
double precoUnitario[] = new double[lim];
int quantidade[] = new int[lim];
double valorTotal[] = new double[lim];
double total = 0, totalComImposto = 0;
String estado;
nome = JOptionPane.showInputDialog("Informe o nome do cliente");
estado = JOptionPane.showInputDialog("Informe o Estado de destino da compra");
for (int i = 0; i < lim; i++) //solicitação dos dados do cadastro na quantidade de vezes informadas na variável "lim"
{
valorTotal[i] = 0;
descricao[i] = JOptionPane.showInputDialog("Informe a descrição do produto");
quantidade[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe a quantidade do produto"));
precoUnitario[i] = Double.parseDouble(JOptionPane.showInputDialog("Informe o preço unitário do produto"));
valorTotal[i] = (double) quantidade[i]*precoUnitario[i];
total = total + valorTotal[i];
}
//criação da mensagem final com o nome do cliente e os produtos cadastrados
String mensagemFinal = "Cliente: " + nome + "\n";
for (int i = 0; i < lim; i++)
{
mensagemFinal = mensagemFinal + descricao[i] + " " + "quantidade: " + quantidade[i] +
" custo unitário: " + precoUnitario[i] + " Valor total: " + valorTotal[i] + "\n";
}
//Calcula ICMS de acordo com o Estado
if (estado.equalsIgnoreCase("SC"))
totalComImposto = total * 1.17;
else
totalComImposto = total * 1.12;
//insere o valor total (soma) de todos os produtos cadastrados
mensagemFinal = mensagemFinal + "Total sem impostos: " + total +
"\nTotal com impostos: " + totalComImposto;
//exibe a mensagem final
JOptionPane.showMessageDialog(null, mensagemFinal);
}
}
Esse código funciona, porém queria não ter que perguntar no início quantos produtos a pessoa quer colocar, queria que a pessoa fosse digitando enquanto quisesse. Sei que se eu usasse o Scanner eu teria o comando “.hasNext()”, mas como estou usando o JOptionPane não consigo usar esse comando. Alguém sabe qual o comando equivalente? Só falando o nome do comando já facilitaria pois eu saberia onde procurar.
Grato
valeu pela dica!