SWITCH - Anweisung.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Forschungszentrum caesar
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik F Verteilte Software - Java.
Ausnahmen HS Merseburg (FH) WS 06/07.
SWITCH - Anweisung.
Verzweigung oder bedingte Anweisung Weiter mit PP.
IF-ELSE-IF-Ketten Weiter mit PP..
ARRAY oder FELD oder VEKTOR
Programmier-sprache Java Weiter mit PP..
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
FOR Anweisung.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
Fehler-Management.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
DO...WHILE Anweisung.
ARRAY oder FELD oder VEKTOR
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Imperative Programmierung Funktionen und Parameter
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
Zusammenfassung Vorwoche
int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0);
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
DVG Ablaufsteuerung
DVG Ausnahmen1 Ausnahmen. DVG Ausnahmen 2 Was sind Programmfehler? Programm erzielt gar kein Ergebnis. Berechnetes Ergebnis stimmt nicht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
Verzweigung.
Rekursive Funktionen (Fakultät)
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Optimale Ursprungsgerade
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Starten der Entwicklungsumgebung (IDE)
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
Konstruktoren.
Hello World! Javakurs 2013 Arne Kappen
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Kalender 2004 String-Version
Folien nach Wochentagen
Schleifen mit der Turtle
 Präsentation transkript:

SWITCH - Anweisung

Zur Nummer eines Tages soll der Wochentag ausgegeben werden. Aufgabe: Zur Nummer eines Tages soll der Wochentag ausgegeben werden. Beispiel: 2 --> Dienstag

Programmieren Sie den Eingabeteil.

Mit If – Else – If Kette realisieren import java.io.*; public class MainWochentag1 { public static void main() throws IOException{ int i; String str; System.out.println("Eingabe der Nummer"); BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); str = myinput.readLine(); i=Integer.parseInt(str); // ... Mit If – Else – If Kette realisieren

if (i==1) System. out. println("Montag"); else if (i==2) System. out if (i==1) System.out.println("Montag"); else if (i==2) System.out.println("Dienstag"); else if (i==3) System.out.println("Mittwoch"); else if (i==4) System.out.println("Donerstag"); else if (i==5) System.out.println("Freitag"); else if (i==6) System.out.println("Samstag"); else if (i==7) System.out.println("Sonntag"); else System.out.println("fal. Eing"); Besser: System.out.println(...) jeweils zwischen geschweifte Klammern setzen.

Dies kann auch durch eine sogenannte SWITCH-Anweisung realisiert werden

Konstante switch (i){ case 1: System.out.println("Montag"); break; //... case 7: System.out.println("Sonntag"); break; default: System.out.println("ungült."); break; } ganzzahliger Ausdruck (char, int) Verlassen der Anweisung Fragen: 1) Warum ist break am Ende überflüssig ? Wenn kein Wert passt Unnötig, aber guter Programmierstil

Java-Syntax für SWITCH

case-Marken sind nicht abweisend switch (Ausdruck){ case Wert1: Anweisungen; break; //... case Wertn: Anweisungen; break; default: Anweisungen; break; } Was passiert, wenn dieses break fehlen würde ? Antwort: trifft es zu, dass der Ausdruck gleich dem Wert einer Konstanten ist, dann werden alle nachfolgenden Anweisungen bearbeitet (und zwar so lange, bis ein break kommt, oder das Ende der switch-Anweisung erreicht wird). Dies gilt auch dann, wenn vor diesen Anweisungen (so wie hier), wiederum "case Konstante" oder default steht. Man sagt: case-Marken sind nicht abweisend Mit case bezeichnete Stellen im Programm sind also keine Verzweiger sondern lediglich Einstiegsmarkierer und break ist der Ausstiegsmarkierer. default ist optional

Beispiel

Wichtig: Wegen Platzmangels wird eine Bildschirmausgabe durch print(" Wichtig: Wegen Platzmangels wird eine Bildschirmausgabe durch print("...") und die Eingabe über Tastatur durch eingabe(...) abgekürzt.

eingabe(i); switch (i){ case 1: print("Montag"); // ... eingabe(i); switch (i){ case 1: print("Montag"); //... case 7: print("Sonntag"); default: print("ungültig"); break; } Was gibt das Programm aus, wenn 1 eingegeben wird? Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag ungültig Hier beginnt der Einstieg und das break unten bringt den Ausstieg.

eingabe(i); switch (i){ case 1: print("Montag"); // ... eingabe(i); switch (i){ case 1: print("Montag"); //... case 7: print("Sonntag"); default: print("ungültig"); break; } Was gibt das Programm aus, wenn 7 eingegeben wird? Sonntag ungültig Hier beginnt der Einstieg und das break unten bringt den Ausstieg.

Beispiel

Was gibt das Programm aus, wenn 1 eingegeben wird? ... eingabe(i); switch (i){ case 1: print("Montag"); //... default: print("ungültig"); case 7: print("Sonntag"); } default muss nicht am Ende stehen. default am Ende ist ist aber der bessere Programmierstil !!!!!! Wenn kein break vorhanden ist, ist der Ausstieg am Ende der switch-Anweisung! Was gibt das Programm aus, wenn 1 eingegeben wird? Montag Dienstag Mittwoch Donnerstag Freitag Samstag ungültig Sonntag

Beispiel

Was macht dieses Programm? ... eingabe(i); switch (i){ case 6: case 7: print("Wochenende"); break; default: print("werktags"); break; } break fehlt case Marken sind nicht abweisend Was macht dieses Programm? Fragen: Was geschieht, wenn i = 6 ist ? Was geschieht, wenn default fehlt ? Wenn i den Wert 6 oder 7, Ausgabe: "Wochenende" sonst Ausgabe: "werktags"

SWITCH-Anweisung als Struktogramm

Ausdruck case Konst. 1 case Konst. 2 ... ... Anweis. n Anweis. 1 default ... ... Anweis. n Anweis. 1 Anweis. 2

Aufgabe: Auf dem Bildschirm erscheint diese Maske: Bei Eingabe einer Zahl 1, 2, 3, 4 wird der entsprechende Programmteil aufgerufen (z.B. Summe zweier Zahlen) Bei Eingabe einer anderen Zahl als 1, 2, 3, 4 wird das Programm beendet. Geben Sie eine Zahl ein. 1: berechnet die Summe zweier Zahlen, 2: berechnet die Differenz zweier Zahlen, 3: berechnet das Produkt zweier Zahlen, 4: berechnet den Quotienten zweier Zahlen. sonst: Programmende

WICHTIG: Um im Folgenden PLATZ zu sparen wurde statt System.out.println(...) der Pseudocode print(...) verwendet. Statt der Java-Anweisung für die Eingabe wurde der Pseudocode eingabe(...) verwendet.

int main(){ int e; double a,b,erg; // Eingabe print("1: Summe\n"); print("2: Differenz\n"); print("3: Produkt\n"); print("4: Quotient\n"); print("sonst: Programmende\n"); eingabe(e); if((e>=1)&&(e<=4)){ print("1.Zahl eingeben\n"); eingabe(a); print("2.Zahl eingeben\n"); eingabe(b); }

// Verarbeitung switch(e){ case 1: erg=a+b; break; case 2: erg=a-b; case 3: erg=a*b; case 4: erg=a/b; }

// Ausgabe switch(e){ case 1: case 2: case 3: case 4: print("Ergebnis="+erg); break; default: print("Programmende"); }

Aufgabe: Geben Sie ein Zeichen ein. Das Programm soll feststellen, welche Eigenschaft dieses Zeichen hat: - Selbstlaut (Vokal) - Mitlaut (Konsonant) - Ziffer - sonst

Was geschieht, wenn das break fehlt ? int main(){ char z; print("Zeichen eingeben"); eingabe (z); switch(z){ case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case 'U': print("Selbstlaut"); break; Es wird an der zum nächsten case zugehörigen Anweisung weitergemacht. Was geschieht, wenn das break fehlt ?

case 'b': case 'B': case 'c': case 'C': case 'd': case 'D': case 'f': case 'F': case 'g': case 'G': case 'h': case 'H': case 'j': case 'J': case 'k': case 'K': case 'l': case 'L': case 'm':

case 'M': case 'n': case 'N': case 'p': case 'P': case 'q': case 'Q': case 'r': case 'R': case 's': case 'S': case 't': case 'T': case 'v': case 'V': case 'w': case 'W': case 'x': case 'X':

case 'y': case 'Y': case 'z': case 'Z': print("Mitlaut"); break;

case '0': case '1': case '2': case '3': case '4': case '5': case '6': print("Ziffer"); break; default: print("sonst"); } Was würde bei Eingabe des Zeichens 'a' auf dem Bildschirm ausgegeben, wenn überall das break fehlen würde ? Selbstlaut Mitlaut Ziffer