Geben Sie die erste Ganzzahl ein: 12 -8 Geben Sie die zweite Ganzzahl ein: Die Summe von 12 plus -8 ist 4
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.
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.
dividend
und divisor
.quotient
und rest
und gibt beides aus.
quotient * divisor + rest
und gibt das Ergebnis aus.
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?
Haben diese Aufzeichnungen immer noch Eure ungeteilte Aufmerksamkeit?