Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Javamenue: Unterschied zwischen den Versionen

(Handwerkszeug)
Zeile 1: Zeile 1:
 
=== Handwerkszeug ===
 
=== Handwerkszeug ===
 
In vielen deiner Javaprogramme wirst du vom Benutzer eine Eingabe per Tastatur erfragen wollen.
 
In vielen deiner Javaprogramme wirst du vom Benutzer eine Eingabe per Tastatur erfragen wollen.
Da sich in Java das Lesen von Tastatureingaben normalerweise etwas umständlich gestaltet haben wir dir an dieser Stelle etwas zur Erleichterung vorbereitet.
+
Da sich in Java das Lesen von Tastatureingaben normalerweise etwas umständlich gestaltet, haben wir dir an dieser Stelle etwas zur Erleichterung vorbereitet.
  
 
* kopiere die Datei [http://uebb.cs.tu-berlin.de/books/java/klassen/Terminal.java Terminal.java] in Dein Arbeitsverzeichnis.
 
* kopiere die Datei [http://uebb.cs.tu-berlin.de/books/java/klassen/Terminal.java Terminal.java] in Dein Arbeitsverzeichnis.
  
Solange diese Datei in demselben Verzeichnis liegt, wie die java-Datei an der Du arbeitest, stehen Dir einige Befehle zur Verfügung, die das Lesen von Tastatureingaben stark erleichtern. Wenn dich interessiert warum das so ist, so erfährst du es [[Javakurs2007/Terminal | hier]].
+
Solange diese Datei in demselben Verzeichnis liegt, wie die java-Datei, an der Du arbeitest, stehen Dir einige Befehle zur Verfügung, die das Lesen von Tastatureingaben stark erleichtern. Wenn dich interessiert, warum das so ist, so erfährst du es [[Javakurs2007/Terminal | hier]].
  
 
Falls das nicht funktioniert, ist der sogenannte CLASSPATH falsch gesetzt.
 
Falls das nicht funktioniert, ist der sogenannte CLASSPATH falsch gesetzt.
Zeile 22: Zeile 22:
  
 
=== Erste Konsolenabfrage ===
 
=== Erste Konsolenabfrage ===
Probieren wir das Ganze einmal aus.
+
Probieren wir das ganze einmal aus.
  
 
* Frage auf der Konsole nach dem Namen des Benutzers.
 
* Frage auf der Konsole nach dem Namen des Benutzers.
Zeile 39: Zeile 39:
 
  eingegebeneZahl = Terminal.readInt();
 
  eingegebeneZahl = Terminal.readInt();
  
* Frage auf der Konsole ob der Benutzer:  
+
* Frage auf der Konsole, ob der Benutzer:  
 
: 1) eine Frau ist.
 
: 1) eine Frau ist.
 
: 2) ein Mann ist.
 
: 2) ein Mann ist.
Zeile 45: Zeile 45:
  
 
* Begrüße den Benutzer abhängig von seiner Eingabe mit "Herr", "Frau" oder geschlechtslos.
 
* Begrüße den Benutzer abhängig von seiner Eingabe mit "Herr", "Frau" oder geschlechtslos.
* Zeige eine Fehlermeldung an wenn eine andere Zahl als 1,2 oder 3 eingegeben wird.
+
* Zeige eine Fehlermeldung an, wenn eine andere Zahl als 1,2 oder 3 eingegeben wird.
  
 
=== Tipps ===
 
=== Tipps ===
Zeile 69: Zeile 69:
  
 
== Kommentare ==
 
== Kommentare ==
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
+
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
  
 
<!--
 
<!--
Als kleine Starthilfe folgt ein Beispiel wie so ein Kommentar formatiert sein könnte. Mit "Vorschau zeigen" kannst du dir ansehen was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.
+
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit "Vorschau zeigen" kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.
 
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)
 
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)
  
 
==== Robert ====
 
==== Robert ====
Na mal schaun ob irgend jemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.
+
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.
 
-->
 
-->

Version vom 11. April 2007, 08:49 Uhr

Handwerkszeug

In vielen deiner Javaprogramme wirst du vom Benutzer eine Eingabe per Tastatur erfragen wollen. Da sich in Java das Lesen von Tastatureingaben normalerweise etwas umständlich gestaltet, haben wir dir an dieser Stelle etwas zur Erleichterung vorbereitet.

Solange diese Datei in demselben Verzeichnis liegt, wie die java-Datei, an der Du arbeitest, stehen Dir einige Befehle zur Verfügung, die das Lesen von Tastatureingaben stark erleichtern. Wenn dich interessiert, warum das so ist, so erfährst du es hier.

Falls das nicht funktioniert, ist der sogenannte CLASSPATH falsch gesetzt. Gibt dazu in dem Terminal direkt nach dem Öffnen des Terminals folgendes Kommando ein:

CLASSPATH=".:$CLASSPATH"


Zurück zum Thema: Einer dieser Befehle lautet "Terminal.readString()". Er liest eine Tastatureingabe bis zum nächsten Zeilenumbruch von der Konsole und liefert ihn als String zurück.

Beispiel:

// Einlesen einer Tastatureingabe bis zum nächsten Zeilenumbruch in die Variable "eingegebeneTextzeile"

String eingegebeneTextzeile;
eingegebeneTextzeile = Terminal.readString();

Erste Konsolenabfrage

Probieren wir das ganze einmal aus.

  • Frage auf der Konsole nach dem Namen des Benutzers.
  • speichere seine Eingabe mit Hilfe von "Terminal.readString()".
  • Begrüße den Benutzer mit seinem Namen.


Menü mit Zahlen

Schonmal nicht schlecht. Nun zum interessanten Teil. Ein weiterer Befehl zur Vereinfachung der Konsolenbenutzung lautet Terminal.readInt(). Er liest eine Zahl von der Konsole und gibt sie als int zurück.

Beispiel:

// Einlesen einer Zahl per Tastatureingabe in die Variable "eingegebeneZahl"

int eingegebeneZahl;
eingegebeneZahl = Terminal.readInt();
  • Frage auf der Konsole, ob der Benutzer:
1) eine Frau ist.
2) ein Mann ist.
3) die Frage nicht beantworten möchte.
  • Begrüße den Benutzer abhängig von seiner Eingabe mit "Herr", "Frau" oder geschlechtslos.
  • Zeige eine Fehlermeldung an, wenn eine andere Zahl als 1,2 oder 3 eingegeben wird.

Tipps

Einen Text auf der Konsole ausgeben:

System.out.println("text");

Den Programmfluss abhängig vom Warheitsgehalt einer Bedingung lenken:

if (bedingung) {
 fall1
}
else {
 fall2
} 

Zwei Bedingungen logisch miteinander verknüpfen:

if (bedingung1 && bedingung2) {...} // Logisches Und
if (bedingung1 || bedingung2) {...} // logisches Oder



Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)