Eingaben
Bisher standen alle Werte fest im Quelltext. Ein Programm wird erst dann richtig nützlich, wenn es mit den Daten arbeitet, die beim Ausführen hereinkommen.
Text einlesen
IO.readln schreibt die Frage in den Ausgabebereich und wartet dort auf deine Eingabe. Was du eintippst, kommt als Zeichenkette zurück.
Zahlen einlesen
Weil IO.readln immer eine Zeichenkette liefert, musst du sie in eine Zahl umwandeln, bevor du damit rechnen kannst.
| Anweisung | Wirkung |
|---|---|
IO.readln("Frage") |
zeigt die Frage an und liefert die Eingabe als String |
Integer.parseInt(text) |
wandelt eine Zeichenkette in einen int um |
Double.parseDouble(text) |
wandelt eine Zeichenkette in einen double um |
Ohne Umwandlung würde eingabe * 2 gar nicht übersetzen – mit einer Zeichenkette kann Java nicht multiplizieren.
Was passiert, wenn du beim obigen Programm statt einer Zahl das Wort hallo eingibst?
Sage es zuerst voraus, probiere es dann aus und lies die Fehlermeldung.
Auflösung
Das Programm bricht mit einem Fehler ab: Integer.parseInt kann aus hallo keine Zahl machen.
Das ist kein Übersetzungsfehler – der Quelltext ist völlig korrekt. Es ist ein Laufzeitfehler: Er tritt erst auf, wenn das Programm läuft, und nur bei bestimmten Eingaben.
Diesen Unterschied solltest du dir merken:
| wann? | Beispiel | |
|---|---|---|
| Übersetzungsfehler | vor dem Start, die IDE zeigt ihn rot an | fehlendes Semikolon |
| Laufzeitfehler | erst beim Ausführen, oft nur bei bestimmten Eingaben | parseInt("hallo") |
Wie man Programme gegen solche Eingaben absichert, lernst du in Kapitel 3.
Aufgabe 1: Rechteck
Schreibe ein Programm, das nach Länge und Breite eines Rechtecks fragt und dann Flächeninhalt und Umfang ausgibt.
Beispielablauf:
Länge in cm: 7
Breite in cm: 4
Fläche: 28 cm²
Umfang: 22 cm
Tipp: Zwei Eingaben
Du brauchst zweimal IO.readln und zweimal Integer.parseInt – und dafür sinnvoll benannte Variablen wie laenge und breite.
Aufgabe 2: Zeitrechner
Baue die Sekundenumrechnung aus Kapitel 1 so um, dass die Anzahl der Sekunden eingegeben wird statt fest im Quelltext zu stehen.
Teste dein Programm mit 7385, mit 60 und mit 0. Notiere, ob die Ausgabe in allen drei Fällen sinnvoll ist.
Zusatzaufgabe
Schreibe einen kleinen Trinkgeldrechner: Er fragt nach dem Rechnungsbetrag und nach dem gewünschten Trinkgeld in Prozent und gibt aus, wie viel Trinkgeld anfällt und wie hoch der Gesamtbetrag ist.
Achte darauf, mit welchem Datentyp du hier arbeiten musst.