buonasera a tutti
ho da poco iniziato con java e sto cercando di fare un programmino facile che mi permetta di manipolare una variabile oggetto "mioConto", che appunto rappresenta un ipotetico saldo bancario, con i metodi di prelievo, deposito e visualizzazione saldo attuale
per gestire l'interfaccia ho usato la classe JOptionPane e sono riuscito ad ottenere un risultato carino ma c'è un problema: vorrei che a fine programma mi chiedesse se voglio fare altre operazioni, in modo da tornare alla scelta dell'operazione da eseguire nel caso dica di si e che mi faccia uscire dal programma nel caso dica di no.
ho tentato di utilizzare un do-while racchiudente l'intero sviluppo del programma per poi mettere un if in fondo al fine di farmi uscire nel momento che scelga di non fare più operazioni.. tuttavia in questo modo la richiesta di continuare mi viene posta all'inizio e non alla fine, essendo io obbligato a inizializzare la variabile che definisce la risposta a tale domanda... ho provato qualcosa ma non riesco a cavarne un ragno dal buco, mi appello alla vostra esperienza
di seguito il sorgente :
import javax.swing.*;
public class ContoBancario
{
public static void main(String [] args)
{
// assegno a mioConto valore di input
String conto1 = JOptionPane.showInputDialog("Immetti saldo conto iniziale");
double conto = Double.parseDouble(conto1);
ContoB mioConto = new ContoB(conto);
int r = JOptionPane.showConfirmDialog(null, "vuoi fare altro?", "lol", JOptionPane.YES_NO_OPTION);
do
{
// costruzione interfaccia scelta dell'operazione
Object[] options = {"Prelievo",
"Deposito",
"Visualizza Importo"};
int n = JOptionPane.showOptionDialog(null,
"Che operazione vuoi eseguire?",
"CONTO BANCARIO",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[2]);
//controllo scelta operazione
switch(n)
{
case 0:
//acquisizione importo da prelevare e operazione di prelievo
String cifraPrelievo = JOptionPane.showInputDialog("Immetti importo da prelevare");
double cifraF_Prelievo = Double.parseDouble(cifraPrelievo);
mioConto.prelievo(cifraF_Prelievo);
// costruzione interfaccia risultato del prelievo
Object[] ImportoF_Prelievo = {"OK"};
int prel = JOptionPane.showOptionDialog(null,
"Importo finale = " + mioConto.importo(),
"CONTO BANCARIO",
JOptionPane.PLAIN_MESSAGE,
JOptionPane.QUESTION_MESSAGE,
null,
ImportoF_Prelievo,
ImportoF_Prelievo[0]);
break;
case 1:
//acquisizione importo da depositare e operazione di deposito
String cifraDeposito = JOptionPane.showInputDialog("Immetti importo da depositare");
double cifraF_Deposito = Double.parseDouble(cifraDeposito);
mioConto.deposito(cifraF_Deposito);
// costruzione interfaccia risultato del deposito
Object[] ImportoF_Deposito = {"OK"};
int dep = JOptionPane.showOptionDialog(null,
"Importo finale = " + mioConto.importo(),
"CONTO BANCARIO",
JOptionPane.PLAIN_MESSAGE,
JOptionPane.QUESTION_MESSAGE,
null,
ImportoF_Deposito,
ImportoF_Deposito[0]);
break;
case 2:
// costruzione interfaccia mostrante saldo attuale
Object[] ImportoF = {"OK"};
int m = JOptionPane.showOptionDialog(null,
"Saldo attuale = " + mioConto.importo(),
"CONTO BANCARIO",
JOptionPane.PLAIN_MESSAGE,
JOptionPane.QUESTION_MESSAGE,
null,
ImportoF,
ImportoF[0]);
break;
}
}
while(r == 0);
if(r == 1)
{
System.exit(1);
}
}
}