zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Was glauben Sie passiert, wenn der Anwender eine Ganzzahl eingibt, wie 211?

Antwort:

Die Zeichen werden in ein double konvertiert.

Ausnahmen (Exceptions)

Die eingegebenen Zeichen werden in ein double konvertiert, wenn das möglich ist, auch wenn die Input-Zeichen keinen Dezimalpunkt haben.

Wenn die eingegebenen Zeichen NICHT in ein double konvertiert werden können, löst Java eine Ausnahme aus und hält das Programm an. (Ein späteres Kapitel bespricht die Behandlung von Ausnahmen.) Zum Beispiel:

D:\daten\JavaNotes\kap11>java DoubleDouble
Geben Sie ein double ein : unsinn
Exception in thread "main" java.util.InputMismatchException
        at java.util.Scanner.throwFor(Unknown Source)
        at java.util.Scanner.next(Unknown Source)
        at java.util.Scanner.nextDouble(Unknown Source)
        at DoubleDouble.main(DoubleDouble.java:14)

Der Input könnte mit Zeichen beginnen, die konvertiert werden können, gefolgt von einem oder mehreren Leerzeichen und vielleicht zusätzlichen Zeichen. Wenn das passiert, scannt nextDouble() nur die Zeichen, die konvertiert werden können.

D:\daten\JavaNotes\kap11>java DoubleDouble
Geben Sie ein double ein: 3,14 und weitere Zeichen
zahl: 3.14 zahl * 2: 6.28

Wenn das Programm die nextDouble() Methode erneut aufruft, wird sie da weitermachen, wo der vorherige Aufruf aufgehört hat. Sie wird keine Zeichen finden, die konvertiert werden können, und wird eine Ausnahme auslösen.

FRAGE 4:

Wird der folgende Input mit dem oben stehenden Programm funktionieren?

D:\daten\JavaNotes\kap11>java DoubleDouble
Geben Sie ein double ein: -97,65

?????