Ola pessual, estou tentando desenvolver uma lógica para minha aplicação mas não está funcionando bem do jeito que deveria, eu tenho de permitir que o usuario realize compra, mas não pode exceder o limite de creditos, tenho algo em vista como criar uma auxiliar para armezanar o valor da compra, deem uma plhada, e me ajudem por favor,~deve ser simles, mas no memonto preciso de ajuda.
//clientes de loja de conveniencia compram varios produtos, permitir que compre ate exceder seu credito.packageCapitulo_4;importjavax.swing.*;importjava.text.DecimalFormat;publicclassExercicio_4_11{publicstaticvoidmain(String[]args){intsomaProduto=0;doublecreditos,valProduto=0,somaVal=0;StringNome;DecimalFormataproxima=newDecimalFormat("0.00");Nome=JOptionPane.showInputDialog(null,"Digite o nome do cliente","Identificação",JOptionPane.QUESTION_MESSAGE);creditos=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor dos creditos concedidos","Credito",JOptionPane.QUESTION_MESSAGE));do{valProduto=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor do produto","Valor Produto",JOptionPane.QUESTION_MESSAGE));if(valProduto>creditos){JOptionPane.showMessageDialog(null,"O cliente não possui saldo suficiente","Atenção",JOptionPane.ERROR_MESSAGE);}if(somaVal>creditos){JOptionPane.showMessageDialog(null,"O cliente não possui saldo suficiente","Atenção",JOptionPane.ERROR_MESSAGE);}else{somaVal=somaVal+valProduto;somaProduto++;}}while(somaVal<=creditos);JOptionPane.showMessageDialog(null,"O cliente "+Nome+"\nAdquiriu "+somaProduto+" Produtos"+"\ncom o total de R$"+aproxima.format(somaVal));}}
Se entendi corretamente, seu programa ficará no loop até que o cliente gaste todo o crédito. while(somaVal<=creditos)
Penso que você poderia colocar uma condição para que o programa saia do loop antes disso.
int result = JOptionPane.showConfirmDialog(null,"Confirmação de compra ?", "Deseja realizar outra compra ?", JOptionPane.WARNING_MESSAGE);
if (result != JOptionPane.YES_OPTION)
{
break;
}
D
douglastc
Vc poderia fazer o seguinte:
Só ter a variável de soma, recebe o valor do produto e já faz um somaProduto += valorProduto;
Aí sí verifica o valor da soma.
E fazer uma condição pro cara sair do programa antes tbm.
Acho que isso te atenderia.
T
TCalderoni
Putz cara verdade, vou fazer a condição pra ele perguntar se o usuário deseja comprar mais, fiz mais dois loops para verificar, valew mesmo em.
Abraço
renamed
publicclassExercicio_4_11{publicstaticvoidmain(String[]args){intsomaProduto=0;doublecreditos,valProduto=0,somaVal=0;StringNome;DecimalFormataproxima=newDecimalFormat("0.00");Nome=JOptionPane.showInputDialog(null,"Digite o nome do cliente","Identificação",JOptionPane.QUESTION_MESSAGE);creditos=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor dos creditos concedidos","Credito",JOptionPane.QUESTION_MESSAGE));valProduto=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor do produto","Valor Produto",JOptionPane.QUESTION_MESSAGE));while((somaVal+valProduto)<=creditos){somaVal+=valProduto;somaProduto++;valProduto=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor do produto","Valor Produto",JOptionPane.QUESTION_MESSAGE));}if((valProduto>creditos)||(somaVal>creditos)){JOptionPane.showMessageDialog(null,"O cliente não possui saldo suficiente","Atenção",JOptionPane.ERROR_MESSAGE);}JOptionPane.showMessageDialog(null,"O cliente "+Nome+"\nAdquiriu "+somaProduto+" Produtos"+"\ncom o total de R$"+aproxima.format(somaVal));}}
Qualquer duvida grita!
romarcio
publicstaticvoidmain(String[]args){intsomaProduto=0;doublecreditos,valProduto=0,somaVal=0,descontoCredito=0;StringNome;DecimalFormataproxima=newDecimalFormat("0.00");Nome=JOptionPane.showInputDialog(null,"Digite o nome do cliente","Identificação",JOptionPane.QUESTION_MESSAGE);creditos=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor dos creditos concedidos","Credito",JOptionPane.QUESTION_MESSAGE));descontoCredito=creditos;while(somaVal<=creditos){valProduto=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor do produto","Valor Produto",JOptionPane.QUESTION_MESSAGE));if(valProduto>descontoCredito){JOptionPane.showMessageDialog(null,"O cliente não possui saldo suficiente\n"+"Saldo = "+descontoCredito,"Atenção",JOptionPane.ERROR_MESSAGE);if(somaVal<=creditos){break;}}elseif(somaVal>creditos){JOptionPane.showMessageDialog(null,"O cliente não possui saldo suficiente","Atenção",JOptionPane.ERROR_MESSAGE);}else{doublevalorAux=valProduto;somaVal=somaVal+valProduto;somaProduto++;descontoCredito=descontoCredito-valProduto;if(somaVal>creditos){somaVal=somaVal-descontoCredito;somaProduto--;break;}}}JOptionPane.showMessageDialog(null,"O cliente "+Nome+"\nAdquiriu "+somaProduto+" Produtos"+"\ncom o total de R$"+aproxima.format(somaVal));}