Dialoge (1)
Im Dialog geht es besser
In einer der letzten Lektionen haben Sie gelernt, wie man ein Programm über Parameter mit Informationen versorgt. Parametereingabe ist auch für Konsolenprogramme eher die Ausnahme. Sinnvoller ist es, die Angaben, die zur Ausführung des Programms benötigt werden, nach dem Programmstart mit präzisen Aufforderungen abzufragen.
Das folgende Programm demonstriert, wie an einer beliebigen Stelle
des Programms Eingaben von der Tastatur gelesen werden können. In Java nutzt man dazu die fertige Klasse Scanner.
Diese steht dem Java-Programmierer aber nicht automatisch zur Verfügung,
sondern muss am Anfang des Programmtextes explizit aus einer Klassenbibliothek
namens java.util importiert werden.
Anstatt aber mit import java.util.Scanner; nur
gezielt diese eine Klasse zu importieren,
binden wir mit import java.util.* gleich die ganze
Bibliothek in unseren Programmtext ein.
import java.util.*;
// bindet die Utilities-Sammlung
// mit der Tastaturscanner-Klasse ein
class Dialog {
public static void main(String[] args) {
String name;
// reserviert Speicherplatz für einen String
System.out.println("Morgendliche Begrüßung\n");
Scanner Eingabe = new Scanner(System.in);
// erzeugt ein Objekt der Klasse Scanner
// und gibt ihm die Bezeichnung "Eingabe"
System.out.print("Hallo, wer bist du?
"); // gibt eine Eingabeaufforderung
aus
name = Eingabe.next();
// speichert die nächste Tastatureingabe
// an der mit name bezeichneten Stelle.
System.out.print("Guten Morgen, ");
System.out.println(name);
// Gibt den gespeicherten String aus.
}
}
Wo kann ich bitte einen String ablegen?
Damit der Computer angemessen mit Eingaben umgehen kann, muss er ungefähr wissen, ob der Benutzer ihm Zahlen oder Wörter mitteilen will. Gehen wir zunächst einfach davon aus: Von der Tastatur kommt ein String, eine Zeichenkette. Die kann Buchstaben, Ziffern oder andere Zeichen enthalten. Ein String wird vom Computer nicht weiter hinterfragt, sondern einfach abgespeichert.
Noch ein Problem ist zu lösen: Die Eingabe kann nicht direkt von der
Tastatur zum Bildschirm übertragen werden, sondern sie muss zwischengespeichert
werden. Dazu dient eine Variable. In unserem
Fall wird
- mit String name eine
Variable angelegt (d.h. eine Schublade für einen String
frei gemacht und mit dem Etikett name
versehen),
- mit name = Eingabe.next()
in der Schublade name
die Eingabe des Benutzers abgelegt,
- mit System.out.println(name)
eine Kopie der Zeichenkette aus der Schublade an die Methode
println
übergeben.
Kopieren Sie das Programm in den Java-Editor, Starten Sie es durch Klick auf den grünen Pfeil und geben Sie Ihren Namen ein.
Aufgaben: