Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hey Leute,
also ich hab einen Haufen von Formeln in meinem Fach Investition & Finanzierung und möchte mir ein Programm schreiben um all diese mit knopfdruck berechnen zu können:
also hätte mir ein einfaches user Interface gedacht mit welchem ich mittels switch case auswähle was ich will und dann halt in die jeweilige Fkt. spring.
NUR: Ich muss zu jeder Formel eine Methode machen und da ich ja Werte in der Formel brauch immer mit
Java:
System.out.println("geben sie den zinsatz ein:" );
zins = sc.nextInt();
//blablabla
Irgendwie wird dann aus einer einfachen Formel die eigentlich eine Zeile lang ist immer eine verdammt voll gepackte Methode mit mid 5 print()s.
Wie kann ich das einfacher und flexibler gestalten?
Ich möchte je nach Formel nur bestimmte Werte abfragen und einfach weitere Formeln dazu coden können.
Du kannst dir nen paar prints sparen indem du Code der öfter vorkommt zusammenfast, z.b. sowas:
Java:
private String read(String message) {
System.out.print(message + ": ");
return sc.nextLine();
}
private int readInt(String message) {
String line = read(message);
// als int parsen
return i;
}
private double readDouble(String message) {
String line = read(message);
// als double parsen
return d;
}
Dann schreibst du später in deinen Methoden nur noch:
Java:
public double calcFormel() {
double zins = readDouble("Bitte Zins eingeben");
double guthaben = readDouble("Bitte Guthaben eingeben");
int jahre = readInt("Bitte die Anzahl der Jahre eingeben");
return zins + guthaben * jahre - 42;
}
Das ganze noch mit nen bissl exceptionhandling ausstatten und dann kannste damit recht einfach deine Formeln umsetzen.
Das Parsen ist unschön, wenn bspw. nach Integer geparst, aber gar keine Zahl, sondern Buchstaben eingegeben worden sind; es fliegt dann eine Exception, die behandelt werden sollte. Besser gleich die Klasse Scanner benutzen, die gar so schöne Methoden wie hasNextInt() und nextInt() bereitstellt.
Und nextInt() schmeißt keine Exception wenn du was falsches eingibst?
Außerdem habe ich ja auch geschrieben dass man da noch Exceptionhandling einbauen muss.
ja ich denke auch, dass die angehensweise hier so stimmt in beiden fällen hätte man exceptions,
wobei für ein anfänger hier klarer wird was alles falsch eingegeben werden kann.
die alternative eine richtige oder falsche eingabe zu haben wäre regex zu verwenden, aber das wäre ja schon ein etwas kompliziertes feld ne?