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

(Terminal.java: -> Terminal.class wird benötigt)
(Geschlechterauswahl politisch korrigiert *trololololo*, switch-case erklärt, diverse Typos korrigiert)
 
(27 dazwischenliegende Versionen von 16 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Tipps:'''
+
=== Handwerkszeug ===
1) gibt einen Text auf der Console aus:
+
In vielen deiner Javaprogramme wirst du vom Benutzer eine Eingabe per Tastatur erfragen wollen.
System.out.println("text");
+
Da sich in Java das Lesen von Tastatureingaben normalerweise etwas umständlich gestaltet, haben wir dir an dieser Stelle etwas zur Erleichterung vorbereitet.
 
 
2) lenkt den Programmfluss abhängig vom Warheitsgehalt der Bedingung:
 
'''if''' (bedingung) {
 
  fall1
 
}
 
'''else''' {
 
  fall2
 
}
 
 
 
3)
 
'''if''' (bedingung1 && bedingung2) {...}
 
und
 
'''if''' (bedingung1 || bedingung2) {...}
 
verknüpfen zwei Bedingungen logisch miteinander.
 
  
 +
* Kopiere die Datei [http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/Terminal.java Terminal.java] in dein Arbeitsverzeichnis.
  
=== Handwerkszeug ===
+
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]].
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.
 
  
* kopiere die Datei Terminal.java in dein aktuelles Arbeitsverzeichnis.
+
Falls das nicht funktioniert, ist der sogenannte CLASSPATH falsch gesetzt.
* (nur die Terminal.java sollte noch nicht reichen, um die statischen Methoden dieser Klasse verwenden zu können. Es bedarf schon einer Terminal.class, oder?)
+
Gib dazu in dem Terminal(Eingabeaufforderung) direkt nach dem Öffnen vor dem Aufruf des Compilers in der Shell folgendes Kommando ein:
 +
 
 +
CLASSPATH=".:$CLASSPATH"
  
Solange diese Datei im selben Verzeichnis liegt wie die .java Datei an der du gerade 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]].
 
  
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.
+
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:
 
Beispiel:
Zeile 39: Zeile 25:
  
 
* Frage auf der Konsole nach dem Namen des Benutzers.
 
* Frage auf der Konsole nach dem Namen des Benutzers.
* speichere seine Eingabe mit Hilfe von "Terminal.readString()".
+
* Speichere seine Eingabe mit Hilfe von "Terminal.readString()".
 
* Begrüße den Benutzer mit seinem Namen.
 
* Begrüße den Benutzer mit seinem Namen.
  
Zeile 45: Zeile 31:
 
=== Menü mit Zahlen ===
 
=== Menü mit Zahlen ===
 
Schonmal nicht schlecht. Nun zum interessanten Teil.
 
Schonmal nicht schlecht. Nun zum interessanten Teil.
Ein weiterer Befehl zur Vereinfachung der Konsolenbenutzung lautet Terminal.readInt(). Er leist eine Zahl von der Konsole und gibt sie als int zurück.
+
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:
 
Beispiel:
Zeile 53: 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.
: 3) die Frage nicht beantworten möchte.
+
: 3) eine andere Geschlechterzugehörigkeit hat. (z.B. "anderes")
 +
 
 +
* Begrüße den Benutzer abhängig von seiner Eingabe mit "Herr", "Frau" oder geschlechtsneutral.
 +
* Zeige eine Fehlermeldung an, wenn eine andere Zahl als 1, 2 oder 3 eingegeben wird. Du kannst den Benutzer dann natürlich trotzdem geschlechtsneutral begrüßen.
 +
 
 +
=== Tipps ===
 +
Einen Text auf der Konsole ausgeben:
 +
System.out.println("text");
 +
 
 +
Den Programmfluss abhängig vom Wahrheitsgehalt einer Bedingung lenken:
 +
'''if''' (bedingung) { // dies ist eine geschweifte Klammer
 +
  fall1
 +
} // dies ist eine geschweifte Klammer
 +
'''else''' { // dies ist eine geschweifte Klammer
 +
  fall2
 +
} // dies ist eine geschweifte Klammer
 +
 
 +
Zwei Bedingungen logisch miteinander verknüpfen:
 +
'''if''' (bedingung1 && bedingung2) {...} // Logisches Und
 +
 
 +
'''if''' (bedingung1 || bedingung2) {...} // logisches Oder
 +
 
 +
Je nach Wert einer Variablen unterschiedlichen Code ausführen: (Nur für int!)
 +
'''switch''' (variable) {
 +
    '''case''' fall1''':''' // Wenn "fall1", wird das hier ausgefuehrt
 +
                '''break;'''
 +
    '''case''' fall2''':''' // Wenn "fall2", wird jenes hier ausgeführt
 +
                '''break;'''
 +
    /*  ...
 +
    Hier koennen noch beliebig viele "case" stehen.
 +
    */
 +
    '''default''':
 +
                // Nur ausgefuehrt, falls sonst kein Fall zutrifft. Hier kein "break"!
 +
}
 +
 
 +
== Zurück zu den Aufgaben ==
 +
 
 +
 
 +
[[Javakurs/Übungsaufgaben|hier geht es weiter]]
 +
 
 +
== 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 ;)
 +
 
 +
<!--
 +
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 ;)
 +
 
 +
==== Robert ====
 +
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.
 +
-->
 +
==== Daniel ====
 +
Ist ja nicht so ein Lerneffekt dabei, wenn uns die .java-Datei schon vorgegeben wird. So etwas selbst zu programmieren käme ja vielleicht erst viel später, dann kann man sich die Aufgabe bis dahin auch aufheben.
 +
 
 +
==== Theresa ====
 +
Ich habe die Geschlechterauswahl mal politisch korrekt gestaltet. Ihr könnt natürlich noch weitere Optionen anbieten, einfach neue int-Werte dafür ausdenken.
  
* Begrüße den Benutzer abhängig von seiner Eingabe mit "Herr", "Frau" oder geschlechtslos.
+
[[Kategorie:Java]]
* Zeige eine Fehlermeldung an wenn eine andere Zahl als 1,2 oder 3 eingegeben wird.
+
[[Kategorie:Java_Aufgaben]]
 +
__NOTOC__

Aktuelle Version vom 6. März 2012, 15:42 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. Gib dazu in dem Terminal(Eingabeaufforderung) direkt nach dem Öffnen vor dem Aufruf des Compilers in der Shell 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) eine andere Geschlechterzugehörigkeit hat. (z.B. "anderes")
  • Begrüße den Benutzer abhängig von seiner Eingabe mit "Herr", "Frau" oder geschlechtsneutral.
  • Zeige eine Fehlermeldung an, wenn eine andere Zahl als 1, 2 oder 3 eingegeben wird. Du kannst den Benutzer dann natürlich trotzdem geschlechtsneutral begrüßen.

Tipps

Einen Text auf der Konsole ausgeben:

System.out.println("text");

Den Programmfluss abhängig vom Wahrheitsgehalt einer Bedingung lenken:

if (bedingung) { // dies ist eine geschweifte Klammer
 fall1
} // dies ist eine geschweifte Klammer
else { // dies ist eine geschweifte Klammer
 fall2
} // dies ist eine geschweifte Klammer

Zwei Bedingungen logisch miteinander verknüpfen:

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

Je nach Wert einer Variablen unterschiedlichen Code ausführen: (Nur für int!)

switch (variable) {
    case fall1: // Wenn "fall1", wird das hier ausgefuehrt
               break;
    case fall2: // Wenn "fall2", wird jenes hier ausgeführt
               break;
    /*  ...
    Hier koennen noch beliebig viele "case" stehen.
    */
    default:
               // Nur ausgefuehrt, falls sonst kein Fall zutrifft. Hier kein "break"!
}

Zurück zu den Aufgaben

hier geht es weiter

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 ;)

Daniel

Ist ja nicht so ein Lerneffekt dabei, wenn uns die .java-Datei schon vorgegeben wird. So etwas selbst zu programmieren käme ja vielleicht erst viel später, dann kann man sich die Aufgabe bis dahin auch aufheben.

Theresa

Ich habe die Geschlechterauswahl mal politisch korrekt gestaltet. Ihr könnt natürlich noch weitere Optionen anbieten, einfach neue int-Werte dafür ausdenken.