Guten Abend!
Ich habe einen Code geschrieben, der Folgendes tut: Es wird nach einem Geldbetrag in Euro gefragt und dann soll ausgegeben werden, wie dieser in Euroscheinen gestückelt wird; wenn der Betrag nicht in Scheine gestückelt werden kann, wird eine Meldung ausgegeben, dass ein neuer Betrag eingegeben werden soll.
Hier mein Code:
Sicher tut der Code, was er soll. Aber meine Frage ist, ob es einen eleganteren Weg gibt (und den gibt es ganz bestimmt).
Beispielsweise habe ich versucht, mit einer while-Schlife zu arbeiten; das sieht dann, wie ich finde, schon übersichtlicher aus:
Ich habe einen Code geschrieben, der Folgendes tut: Es wird nach einem Geldbetrag in Euro gefragt und dann soll ausgegeben werden, wie dieser in Euroscheinen gestückelt wird; wenn der Betrag nicht in Scheine gestückelt werden kann, wird eine Meldung ausgegeben, dass ein neuer Betrag eingegeben werden soll.
Hier mein Code:
Java:
import java.util.Scanner;
public class Geldausgabe {
public static void main(String[] args) {
System.out.println("Bitte Betrag in EUR eingeben: ");
Scanner scanner1 = new Scanner(System.in);
int wunschbetrag = scanner1.nextInt();
geldAusgabe(wunschbetrag);
scanner1.close();
}
public static void geldAusgabe(int n) {
int geldwunsch = n;
int[] scheine = { 500, 200, 100, 50, 20, 10, 5 };
if (geldwunsch % 5 == 0) {
for (int j = 0; j < scheine.length; j++) {
int anzahl = (geldwunsch / scheine[j]);
geldwunsch = geldwunsch - anzahl * scheine[j];
System.out.printf("Anzahl %d-Schein: %d%n", scheine[j], anzahl);
}
} else {
System.out.println("Betrag in Scheinen nicht auszahlbar, bitte neuen Betrag eingeben: ");
Scanner scanner2 = new Scanner(System.in);
int wunschbetrag = scanner2.nextInt();
geldAusgabe(wunschbetrag);
scanner2.close();
}
}
}
Sicher tut der Code, was er soll. Aber meine Frage ist, ob es einen eleganteren Weg gibt (und den gibt es ganz bestimmt).
Beispielsweise habe ich versucht, mit einer while-Schlife zu arbeiten; das sieht dann, wie ich finde, schon übersichtlicher aus:
Java:
import java.util.Scanner;
public class AusgabeGeld {
public static void main(String[] args) {
System.out.println("Bitte Betrag in EUR eingeben: ");
Scanner sc = new Scanner(System.in);
int wunschwert = sc.nextInt();
while(wunschwert % 5 != 0) {
System.out.println("Bitte neuen Betrag eingeben: ");
sc = new Scanner(System.in);
wunschwert = sc.nextInt();
}
geldAusgabe(wunschwert);
sc.close();
}
public static void geldAusgabe(int n) {
int geldwunsch = n;
int[] scheine = { 500, 200, 100, 50, 20, 10, 5 };
for (int j = 0; j < scheine.length; j++) {
int anzahl = (geldwunsch / scheine[j]);
geldwunsch = geldwunsch - anzahl * scheine[j];
System.out.printf("Anzahl %d-Schein: %d%n", scheine[j], anzahl);
}
}
}
Zuletzt bearbeitet: