Bjarki Geschrieben 7. April 2010 Geschrieben 7. April 2010 (bearbeitet) jaein. Dir wird der Fehler zwar angezeigt aber das Programm verlässt den catch Block danach und geht direkt weiter im code--> Du bekommst keine Möglichkeit dieselbe Zahl nochmals korrekt einzugeben. Versuchs mal mit ner Schleife die Deinen Tryblock umschließt. Gibt wohl noch andere Methoden, aber das scheint mir das einfachste Bearbeitet 7. April 2010 von Bjarki Zitieren
musti Geschrieben 7. April 2010 Autor Geschrieben 7. April 2010 (bearbeitet) wie ist es hiermit. klappt auch try { System.out.println("Geben sie bitte die erste Zahl ein"); zahl1 = Double.parseDouble(in.readLine()); } catch (NumberFormatException g) { System.err.println("FEHLER:Bitte geben Sie eine Zahl ein:"); zahl1 = Double.parseDouble(in.readLine()); } try { System.out.println("Geben sie bitte die zweite Zahl ein"); zahl2 = Double.parseDouble(in.readLine()); } catch (NumberFormatException f) { System.err.println("FEHLER:Bitte geben Sie eine Zahl ein:"); zahl2 = Double.parseDouble(in.readLine()); } Bearbeitet 7. April 2010 von musti Zitieren
LadyPreis Geschrieben 7. April 2010 Geschrieben 7. April 2010 und wenn dann im Catch eine falsche Zahl eingegeben wird stehst du wieder am Anfang Halte dich mal an den Vorschlag von Bjarki Zitieren
Bjarki Geschrieben 7. April 2010 Geschrieben 7. April 2010 Hm ne, da hast Du genau 2 chancen und bei der 2ten falschen Eingabe hauts Dir ne Exception um die Ohren. Mit Schleifen meint ich sowas Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 2.7 Schleifen Zitieren
musti Geschrieben 7. April 2010 Autor Geschrieben 7. April 2010 (bearbeitet) das mim programmieren ist wirklich nicht so einfach und für einen anfäger wie ich erst recht Bearbeitet 7. April 2010 von musti Zitieren
flashpixx Geschrieben 7. April 2010 Geschrieben 7. April 2010 @musti: Es ist einfach, nur muss man eben das Problem erkennen und dann das Problem in einzelne Schritte zerlegen, die man in Befehle eingeben kann. Du kannst nicht erwarten, dass der Computer für Dich ein Problem löst, wenn Du es ihm nicht beibringen kannst. Anhand Deines Beispiel: Der Computer soll Zahlen berechnen, Du musst ihm also sagen, wie er rechnen soll. Woher er die Daten bekommt und was er bei Fehlern machen soll. Typisch ist EVA (Eingabe Verarbeitung Ausgabe), d.h. Daten einlesen + prüfen, Verarbeiten und Ausgeben. Egal wie komplex man heute arbeiten kann, letztendlich ist es immer noch dieses Prinzip. Es ist immer für den Anfänger das Programm / Problem auf einem Zettel auf zu schreiben. Du könntest ja Deinen Rechner einmal dahin erweitern, dass er mit Brüchen rechnen kann also z.B. 1/2 + 1/4 und dann auch 3/4 ausgibt. Zitieren
unbenannt Geschrieben 7. April 2010 Geschrieben 7. April 2010 klappt auch Du begehst den Fehler, nur das zu prüfen, was angesichts des Codes auch funktionieren kann. Genauso zu prüfen sind aber auch die Fälle, die niemals funktionieren können, wie z.B. die Division durch 0, Eingabe von Zahlen, leere Eingabe und und und... Wie Du aber darauf reagieren möchtest, musst Du selber wissen. Das Programm einfach abstürzen zu lassen, ist natürlich keine gute Idee. Es kann auch einfach mit einer Fehlermeldung beendet werden, oder aber halt solange prüfen bis ein verwertbarer Wert eingegeben wird. Beides ist aber mit ein wenig Grundlagenwissen einfach realisierbar (auch wenn ich spontän nicht wüsste, wie man in Java ein try-catch mit einer while-Schleife paaren könnte und eher zur Rekursion greifen würde). Kleiner Tipp: denke auch an eine Ausstiegsmöglichkeit für den Nutzer und vermeide Endlosschleifen. Zitieren
lilith2k3 Geschrieben 7. April 2010 Geschrieben 7. April 2010 Statt draufloszuklimpern, solltest Du Dir am besten ersteinmal einen PAP auf Papier kritzeln, um zu sehen, was Du von Deinem Programm erwartest; Dir anschließend überlegen, was in Deinem Programm für Fehler auftreten können, die nicht durch den Benutzer hervorgerufen werden und zu guter letzt, eine Art whitelist an Benutzereingaben erstellen, so daß Du nur mit für Dein Programm geeignetem Input arbeitest und alles andere mit einer Fehlermeldung ahndest. Zitieren
musti Geschrieben 21. April 2010 Autor Geschrieben 21. April 2010 danke leute, das hat sich geklärt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.