Zuerst mal Hallo , bin ganz neu hier und auch noch ein ziemlicher Java-Anfänger, studiere seit einem halben ja Info-Managment und da haben wir als Programmiersprache Java als Unterrichtsgegenstand.
Das Tempo ist relativ hoch für mich als Anfänger und deshalb blick ich bei einigen Sachen auch noch nicht so richtig durch, aber durch sehr viel eigenen Recherche und Eigenarbeit komm ich schön langsam (aber wirklich langsam) ein wenig hinter die Thematik.
Ok dann mal zu meinem Problem. Ich suche heute shcon seit 4 Stunden seit ich auf der Uni bin nach einer Lösung, ich weis net genau wie ich das ganze Problem beschreiben soll. Es handelt sich um ein Rechnenprogramm in das Stringwerte eingelesen werden die vor der Berechnung in die Double-Werte umgewandelt werden.
Dazu hat man ein Hauptprogramm und eine Methode die die Strings in Double-Zahlen umwandelt. Dabei arbeite ich mit einen try, catch anweisung. Das geht so, dass der eingelesen String in eine Double-Zahl umgewandelt werden soll mit Double.parsedouble(s); funktioniert das nicht, wenn man z.B. ein Zeichen eingibt (außer 'q', q dient zum beenden), dann gibt es eine exception und das Programm weist einen daraufhin dass man die Zahl erneut eingeben soll, das Problem ist nun folgendes dass das Einlesen aber nicht in der Methoder sondern im Main-Programm erfolgt. Wie komme ich jetzt zurück in das Main-Programm ... hab schon alles versucht, gibts da einen Befehl? Dazu sei gesagt, dass wir ein halbfertiges Programm als Aufgabe vorgesetzt kriegen und dieses erweitern müssen (wenn ich das Programm selber geschrieben hätte, hätte ich das sowieso ganz anders gemacht ).
Zur besseren Verständis schreib ich den Code der Methode rein ich hoffe das reicht.
private static double readNumber(String s) {
double d = 1d;
boolean format = false;
while(!format){
try{
d = Double.parseDouble(s);
format = true;
}
catch (NumberFormatException x){
Out.print("Die Eingabe ist keine Zahl! Geben Sie eine Zahl ein (q-quit): ");
}
}
//Use a try-catch statement to avoid such a situation!
//If the parsing was unsuccessful, the user should be
//prompted with the following message:
//
//Furthermore, put your try-catch statement inside a while-loop
//which runs until a correct double value has been assigned
//to the x variable or the user has entered a "q" for quit.
return d;
}
ich hoffe ihr könnt mir helfen
danke Christofer
Das Tempo ist relativ hoch für mich als Anfänger und deshalb blick ich bei einigen Sachen auch noch nicht so richtig durch, aber durch sehr viel eigenen Recherche und Eigenarbeit komm ich schön langsam (aber wirklich langsam) ein wenig hinter die Thematik.
Ok dann mal zu meinem Problem. Ich suche heute shcon seit 4 Stunden seit ich auf der Uni bin nach einer Lösung, ich weis net genau wie ich das ganze Problem beschreiben soll. Es handelt sich um ein Rechnenprogramm in das Stringwerte eingelesen werden die vor der Berechnung in die Double-Werte umgewandelt werden.
Dazu hat man ein Hauptprogramm und eine Methode die die Strings in Double-Zahlen umwandelt. Dabei arbeite ich mit einen try, catch anweisung. Das geht so, dass der eingelesen String in eine Double-Zahl umgewandelt werden soll mit Double.parsedouble(s); funktioniert das nicht, wenn man z.B. ein Zeichen eingibt (außer 'q', q dient zum beenden), dann gibt es eine exception und das Programm weist einen daraufhin dass man die Zahl erneut eingeben soll, das Problem ist nun folgendes dass das Einlesen aber nicht in der Methoder sondern im Main-Programm erfolgt. Wie komme ich jetzt zurück in das Main-Programm ... hab schon alles versucht, gibts da einen Befehl? Dazu sei gesagt, dass wir ein halbfertiges Programm als Aufgabe vorgesetzt kriegen und dieses erweitern müssen (wenn ich das Programm selber geschrieben hätte, hätte ich das sowieso ganz anders gemacht ).
Zur besseren Verständis schreib ich den Code der Methode rein ich hoffe das reicht.
private static double readNumber(String s) {
double d = 1d;
boolean format = false;
while(!format){
try{
d = Double.parseDouble(s);
format = true;
}
catch (NumberFormatException x){
Out.print("Die Eingabe ist keine Zahl! Geben Sie eine Zahl ein (q-quit): ");
}
}
//Use a try-catch statement to avoid such a situation!
//If the parsing was unsuccessful, the user should be
//prompted with the following message:
//
//Furthermore, put your try-catch statement inside a while-loop
//which runs until a correct double value has been assigned
//to the x variable or the user has entered a "q" for quit.
return d;
}
ich hoffe ihr könnt mir helfen
danke Christofer