In dieser Lerneinheit wird die einfache Eingabe und Ausgabe von Text behandelt.
Für die Java-Programmierung ist das Ausgeben von einfachen Botschaften sehr wichtig. Mit Hilfe von I/O-Routinen kann der Programmieren mit seinem Programm interagieren. Er kann den Programmstatus abfragen oder aber den Programmablauf mit Eingaben steuern.
Im Folgenden werden wir zuerst einen einfachen Text von unserem Programm ausgeben lassen und anschließend unser Programm mit einer Standard-Eingabe steuern.
Eine einfache Ausgabe in Java programmieren
In diesem Beispiel geben wir zwei Zeichenketten auf dem Bildschirm aus. Wir verwenden dazu den Befehl System.out.println
.
Einfache Ausgabe in Java
/* * Die EingabeAusgabe Klasse implementiert eine Anwendung, * die einfachen Text ausgibt. */ public class EingabeAusgabe { public static void main(String[] args) { System.out.println("Geben Sie die Laenge L ein:"); System.out.println("Geben Sie die Breite B ein:"); } }
Mit dem Java-Compiler erstellen wir aus dem Java-Quelltext die Class-Datei (Bytecode). Dazu geben wir javac EingabeAusgabe.java
in der Kommandozeile ein.
Anschließend führen wir mit dem Java-Interpreter die Class-Datei (unser Java-Programm) aus. Dazu benutzen wir den Befehl java EingabeAusgabe
.
Wenn alles funktioniert, dann bekommen wir die folgenden zwei Zeilen ausgegeben:
Geben Sie die Laenge L ein:
Geben Sie die Breite B ein:
Anhand folgender Abbildung könnt Ihr die Vorgehensweise noch einmal nachvollziehen. Mit dem Befehl dir
prüfen wir, ob die Quelldatei EingabeAusgabe.java in dem Verzeichnis vorhanden ist.
Eine einfache Eingabe in Java programmieren
Wir möchten nun die Fläche eines Rechtecks berechnen lassen. Dazu geben wir die Länge und Breite des Rechtecks in unser Java-Programm ein.
Für das Einlesen von Daten über die Kommandozeile verwenden wir den Eingabe-Stream System.in
, für das Ausgeben des Ergebnisses den Ausgabe-Stream System.out
.
Einfache Eingabe und Ausgabe in Java
* Die EingabeAusgabe Klasse implementiert eine Anwendung, * die einfachen Text ausgibt und Ganzzahlen einliest. */ import java.util.Scanner; public class EingabeAusgabe { public static void main(String[] args) { int L, B, F; Scanner eingabewert = new Scanner(System.in); System.out.print("Geben Sie die Laenge L ein (in cm): "); L = eingabewert.nextInt(); System.out.print("Geben Sie die Breite B ein (in cm): "); B = eingabewert.nextInt(); F = L * B; System.out.println("Die Flaeche des Rechtecks ist: " + F + " cm^2"); } }
Mit Hilfe einer Instanz der Scanner-Klasse lesen wir zwei Integer-Werte (Ganzzahlen) ein und speichern diese in den Variablen L und B ab. Anschließend wird die Fläche F nach der Formel F = L * B
berechnet und über die Kommandozeile ausgegeben.
Die Ausgabe des Ergebnisses geschieht in Zeile 20, dabei wird eine Zeichenkette aus zwei String-Objekten und einem Integer-Wert und mit Hilfe des +-Operators zusammengesetzt.
Wird für die Länge 125 und für die Breite 75 eingegeben, erhält man folgende Ausgabe:
Geben Sie die Laenge L ein (in cm): 125
Geben Sie die Breite B ein (in cm): 75
Die Flaeche des Rechtecks ist: 9375 cm^2
Anhand folgender Abbildung könnt Ihr die Vorgehensweise noch einmal nachvollziehen.
Vorsicht! Wenn du einen Buchstaben eingibst, tritt ein Fehler auf, der abgefangen werden sollte. In diesem Beispiel wird der Fehler nicht abgefangen und das Java-Programm bricht automatisch ab (wird beendet).
Der Fehler tritt auf, weil in Zeile 16: L = eingabewert.nextInt();
die Eingabezeile ausgelesen wird. Dabei wird ein Integer-Wert (Ganzzahl) erwartet. Wenn der Benutzer etwas anderes als eine ganze Zahl eingegeben hat, dann wird das Java-Programm sofort aufgrund der Fehleingabe beendet.
Für Fortgeschrittene: Mit Zeile 6: import java.util.Scanner;
wird die Scanner-Klasse des Pakets java.util
bekanntgemacht. Dadurch weiß der Java-Compiler über die Scanner-Klasse Bescheid und kann den Java-Quelltext übersetzen. Ohne diese Import-Anweisung würde der Java-Compiler die Scanner-Klasse nicht finden und uns mit einer entsprechenden Fehlermeldung darüber informieren.
Comments 6
Hallo,
gibt es eine Möglichkeit diesen Scanner auch mit einem anderen Datentyp, z.B.: String, Double, char, etc. zu verwenden?
Author
Hallo Anton,
ja, das lässt sich bewerkstelligen. Die verschiedenen Eingaben können wie folgt als Variable gespeichert werden:
Viele Grüße,
Chris
den hier erklärten Scanner-input(so nenne ich ihn jetzt mal) kann man anscheinend nicht in einer Schleife verwenden.
Falls ich mich irre hoffe ich, jemand kann mich berichtigen, da ich dies in einem meinerb programme brauche!
Pingback: Der Einstieg in die Welt der Java-Programmierung -
Hallo,
In Zeile 12 und 14 wird die Variable eingabewert zweimal verwendet. Ich bin gerade dabei mich mit der Sprache Java zu beschäftigen.
Ich habe zwei Variablen eingabewert1 und eingabewert2 benutzt und entsprechend eingabewert1.nextInt() und eingabewert2.nextInt() verwendet. Dann läuft dass Programm bei mir ohne Fehler.
Mit freundlichen Grüßen
Norbert
Author
Hallo Norbert,
vielen Dank für deinen Hinweis. Die Variable eingabewert muss nur einmal deklariert/initialisiert werden. Ich hatte dies wie du richtig festgestellt hast, zweimal getan. Dadurch gab es einen Compiler-Fehler. Den Fehler habe ich jetzt berichtigt. Das Programm sollte jetzt so wie es im Beitrag steht laufen.
Viele Grüße, Chris