Salve a tutti premetto che sono neofita della programmazione con questo linguaggio...per fare pratica volevo fare questo piccolo programmino dove si possono effettuare versamenti, prelievi, vedere il saldo e vedere le ultime 5 transizioni fatte.
Funziona tutto tranne la parte fondamentale l'azione del prelievo e del versamento.
Questo è il mio codice:
public class CC{
int contocorr;
int a[]=new int[5];
public void versamento(int soldi, int i){
this.contocorr=this.contocorr + soldi;
a[i%5]=+soldi;
}
public void prelievi(int soldi, int i){
this.contocorr=this.contocorr - soldi;
a[i%5]=-soldi;
}
}
import java.util.*;
public class Banca{
public static void main(String[] args){
Scanner h= new Scanner(System.in);
String mossa=new String();
char c;
int somma;
int m=-1;
int i;
CC b=new CC();
do{
m++;
System.out.println("v-versamento");
System.out.println("p-prelievo");
System.out.println("s-saldo");
System.out.println("l-lista ultimi 5 movimenti");
System.out.println("x-exit");
mossa=h.nextLine();
c=mossa.charAt(0);
switch (c){
case 'v':
System.out.println("somma da versare");
somma=h.nextInt();
b.versamento(somma,m);
break;
case 'p':
System.out.println("somma da prelevare");
somma=h.nextInt();
b.prelievi(somma,m);
break;
case 's':
System.out.println("Saldo = " + b.contocorr);
break;
case 'l':
i=0;
int j=1;
while(i<5){
System.out.println(j + " - " + b.a[i] + "\n");
j++;
i++;
}
break;
case 'x':
System.out.println("EXIT");
break;
}
}while(c!='x');
}
}
Questo è invece il messaggio di errore che mi da la macchina virtuale a tempo di esecuzione:
v-versamento
p-prelievo
s-saldo
l-lista ultimi 5 movimenti
x-exit
v
somma da versare
9
v-versamento
p-prelievo
s-saldo
l-lista ultimi 5 movimenti
x-exit
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at Banca.main(Banca.java:20)
Ho anche visto se prendeva il valore in input e se lo passava nell'array e funziona solo che dopo non mi fa proseguire...qualcuno sa dirmi dove sbaglio??
Grazie buona serata