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
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
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
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
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
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.
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.
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden