zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite
Geben Sie die erste Ganzzahl ein:
12 -8
Geben Sie die zweite Ganzzahl ein:
Die Summe von 12 plus -8 ist 4

Antwort:

Beim ersten Aufruf von nextInt() hat der Scanner die Zeichen "12" gefunden, sie in ein int konvertiert und dann angehalten. Er hat getan, was das Programm verlangt hat.

Beim zweiten Aufruf von nextInt() setzte der Scanner die Suche an der Stelle fort, an der er zuvor angehalten hatte. Er findet die Zeichen "-8" und konvertiert sie in einen int-Wert.

Die Aktion des Scanners hängt nicht von der Eingabeaufforderung ab, die das Programm ausgegeben hat.


Integer Division Tester

Die Methode nextInt() durchsucht den Eingabestrom Zeichen für Zeichen und bildet eine Gruppe, die in numerische Daten umgewandelt werden kann. Dabei werden Leerzeichen und Zeilenenden übersprungen, die eine Gruppe von einer anderen trennen können. Sobald sie eine Gruppe gefunden hat, wird die Suche beendet.

In dem oben stehenden hat der Anwender zwei Gruppen in einer Zeile eingegeben. Jeder Aufruf von nextInt() hat eine Gruppe gescannt.

Man könnte versucht sein sich den Input als einzelne Zeichen vorzustellen. Aber ein Scanner sieht einen Strom von Zeichen. Nachdem er eine Gruppe gescannt hat, stoppt er, wo er auch gerade ist, und wartet bis er wieder zum Scannen aufgefordert wird.



Hier ist ein neues Programm, das durch Modifizierung des ersten Programms erstellt wurde.

import java.util.Scanner;
class IntDivisionTest
{
  public static void main (String[] args)
  {
    Scanner scan = new Scanner( System.in );

    int dividend, divisor ;    // int Version des Inputs
    int quotient, rest ;       // Ergebnisse von "/" und "%"

    System.out.println("Dividend eingeben:");   // Dividend lesen
    dividend = scan.nextInt();

    System.out.println("Divisor eingeben:");    // Divisor lesen
    divisor  = scan.nextInt();

    quotient = dividend / divisor ;              // Quotient bilden
    rest = dividend % divisor ;

    System.out.println( dividend + " / " + divisor + " ist " + quotient );
    System.out.println( dividend + " % " + divisor + " ist " + rest );
    System.out.println( quotient + " * " + divisor +
        " + " + rest + " ist " + (quotient*divisor+rest) );
  }
}

Wir führen das Programm ein paar Mal aus. Was passiert, wenn negative Ganzzahlen eingegeben werden?


FRAGE 17:

Haben diese Aufzeichnungen immer noch Eure ungeteilte Aufmerksamkeit?