Hi,
ich habe eine Konsoleneingabe mit dem BufferdReader geschrieben. Man soll einen Doublewert eingeben. Die Methode für die Eingabe wandelt die Eingabe dann in Double um gibt diese per return zurück.
Im falle einer Exception ruft die Methode sich selber neu auf.
Das ding ist, dass es bis hier hin funktioniert. Wenn ich jetzt aber mal eine Fehleingabe mache und DANN einen korrekten Wert eingebe, kommt dieser nicht an. Ich bekomme 0.0 raus.
Die Methode wird folgendermaßen aufgerufen:
Habe ich irgendetwas nicht beachtet?
Von der logik her, sollte der Programmabblauf im Falle einer Exception doch noch in der Methode sein und erst nach einer korrekten Eingabe einen Wert weitergeben.
Bin am verzweifeln und würde mich über Hilfe freuen!
ich habe eine Konsoleneingabe mit dem BufferdReader geschrieben. Man soll einen Doublewert eingeben. Die Methode für die Eingabe wandelt die Eingabe dann in Double um gibt diese per return zurück.
Im falle einer Exception ruft die Methode sich selber neu auf.
Das ding ist, dass es bis hier hin funktioniert. Wenn ich jetzt aber mal eine Fehleingabe mache und DANN einen korrekten Wert eingebe, kommt dieser nicht an. Ich bekomme 0.0 raus.
Code:
double input() {
double x = 0;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(
System.in));
x = Double.parseDouble(in.readLine().replaceAll(",", "."));
} catch ( Exception e) {
System.out.println("Fehler bei der Eingabe. Bitte zulässigen Wert eingeben!");
input();
}
return x;
}
Die Methode wird folgendermaßen aufgerufen:
Code:
var = input();
//zeigt noch mal an, welcher Wert übergeben wurde
System.out.println(var);
System.out.println("Die MWST betraegt: " + calculate(var)+ " EUR");
Habe ich irgendetwas nicht beachtet?
Von der logik her, sollte der Programmabblauf im Falle einer Exception doch noch in der Methode sein und erst nach einer korrekten Eingabe einen Wert weitergeben.
Bin am verzweifeln und würde mich über Hilfe freuen!