Witam.
Napisałem taki oto kod który zamienia jakąś reszta (np w sklepie, automacie) na monety/banknoty.
package pl.danek.reszta;
import java.util.ArrayList;
import java.util.Scanner;
public class Reszta {
public static void main(String[] args) {//wiem metoda main jest brzydka ale to tylko do testów
Reszta r = new Reszta();
Scanner s = new Scanner(System.in);
System.out.println("Podaj reszte do wydania");
double cena=Double.parseDouble(s.nextLine());
ArrayList<Integer>test = r.reszta((int)(cena*100));
r.print(test);
}
//formatuje i wyswietla liste reszty
public void print(ArrayList<Integer> reszta){
System.out.println("Reszta:");
for (Integer integer : reszta) {
if (integer>99) {
System.out.println(integer/100+" zł");
}else {
System.out.println(integer+" gr");
}
}
}
//lista mozliwych nominałów do wydania
public final int [] nomimaly = { //w groszach
20000, //200 zl
10000, //100 zl
5000, // i tak dalej
2000,
1000,
500,
200,
100,
50,
20,
10,
5,
2,
1
};
public ArrayList<Integer> reszta(int kwota){
ArrayList<Integer> reszta = new ArrayList<>();
int pom=0;
do {
if (kwota==0||pom>nomimaly.length) {
break;
}
if (kwota>=nomimaly[pom]) {
reszta.add(nomimaly[pom]);
kwota-=nomimaly[pom];
}else {
pom++;
}
} while (true);
return reszta;
}
}
I mam pytanie czy jest to wmiare poprawne wykonane? (chodzi mi o dobre nawyki programistyczne)