Ciao,
non hai bisogno di contare niente perchè sai già che non potrai inserire più di 5 elementi dato che hai creato il vettore borsa lungo 5. Il tuo programma però non ha nessuna condizione che impedisca all'utente di inserire più di 5 elementi.
Se il tuo programma dovesse prendere in input al massimo 5 monete e terminare nel caso l'utente inserisca lo 0, dovresti scrivere il tuo ciclo così:
codice:
while (stop != prov && i < borsa.length){
.........
}
Un piccolo consiglio: prendi l'abitudine di non dichiarare mai le variabili all'interno di un ciclo come hai fatto tu con la m; in questo modo continui a creare e distruggere la variabile ad ogni iterazione. Creala sempre all'esterno. Inoltre non ne hai bisogno, potresti semplicemente scrivere così:
codice:
int i = 0;
while (stop != prov && i < borsa.length){
borsa[i] = JOptionPane.showInputDialog(".....");
i++;
.........
}
A proposito di borsasize:
-la convenzione java dice di usare caratteri maiuscoli per separare un nome formato da piu parole; in questo caso borsaSize. So che sembra una cavolata ma aiuta a rendere più leggibile il codice.
-non ti serve a molto in questo caso. Avresti potuto semplicemente mettere nel for che usi per stampare, una condizione che escluda gli elementi del vettore che non hai riempito (nulli).
codice:
for (int j = 0; j<borsa.length; j++){
if (borsa[j] != null){
System.out.println(borsa[j]);
}
}
Nel caso non sappia a priori quante monete l'utente andrà ad inserire, dovresti usare un ArrayList invece che un vettore.
Te lo scrivo usando gli ArrayList ma se ancora non li conosci dai un occhiata alla documentazione ufficiale o in alternativa usa il buon vecchio google.
codice:
int prov = 0;
int stop = 2;
ArrayList<String> borsa = new ArrayList<>();
while (stop != prov){
borsa.add(JOption.showInputDialog("..."));
stop = Integer.parseInt(JOption.showInputDialog("..."));
}
for(int j = 0; j < borsa.size(); j++){
System.out.println(borsa.get(j));
}
Comunque anche io non sono un esperto quindi prendi tutto quello che ho detto come un consiglio