zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Was meint Ihr wird scan.nextDouble() zurückgeben, wenn der Anwender eine Ganzzahl wie 211 eingibt?

Antwort:

Die Zeichen werden in ein double konvertiert.

Ausnahmen (Exceptions)

Die eingegebenen Zeichen werden automatisch in ein double konvertiert, 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

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
zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite