switch - anweisung. aufgabe: zur nummer eines tages soll der wochentag ausgegeben werden. beispiel:...

30
SWITCH - Anweisung

Upload: adalric-strassel

Post on 05-Apr-2015

109 views

Category:

Documents


4 download

TRANSCRIPT

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

SWITCH - Anweisung

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

Aufgabe:Zur Nummer eines Tages

soll der Wochentag ausgegeben werden.

Beispiel:2 --> Dienstag

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

Programmieren Sie den Eingabeteil.

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

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

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

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.

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

Dies kann auch durch eine sogenannte

SWITCH-Anweisung realisiert werden

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

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)

Konstante

Wenn kein Wert passt

Verlassen der Anweisung

Unnötig, aber guter Programmierstil

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

Java-Syntax fürSWITCH

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

switch (Ausdruck){ case Wert1: Anweisungen; break; //... case Wertn: Anweisungen; break; default: Anweisungen; break;} default ist optional

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.

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

Beispiel

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

Wichtig:Wegen Platzmangels wird eine

Bildschirmausgabe durch print("...")

und die Eingabe über Tastatur durch

eingabe(...) abgekürzt.

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

...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?

MontagDienstagMittwochDonnerstagFreitagSamstagSonntagungültig

Hier beginnt der Einstieg und das break unten bringt den Ausstieg.

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

...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?

Sonntagungültig

Hier beginnt der Einstieg und das break unten bringt den Ausstieg.

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

Beispiel

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

...eingabe(i); switch (i){ case 1: print("Montag"); //... default: print("ungültig"); case 7: print("Sonntag");}

Was gibt das Programm aus, wenn 1 eingegeben wird?

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!

MontagDienstagMittwochDonnerstagFreitagSamstagungültigSonntag

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

Beispiel

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

...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?

Wenn i den Wert 6 oder 7, Ausgabe: "Wochenende" sonst Ausgabe:"werktags"

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

SWITCH-Anweisung

als Struktogramm

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

Ausdruck

...

case Konst. 1

Anweis. 1

case Konst. 2 default

Anweis. 2 ... Anweis. n

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

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.

Aufgabe:

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

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

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.

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

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

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

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

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

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

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

Geben Sie ein Zeichen ein.Das Programm soll feststellen, welche Eigenschaft dieses Zeichen hat:

- Selbstlaut (Vokal)- Mitlaut (Konsonant)- Ziffer - sonst

Aufgabe:

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

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;

Was geschieht, wenn das break fehlt ?

Es wird an der zum nächsten case zugehörigen Anweisung weitergemacht.

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

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':

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

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':

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

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

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

case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': print("Ziffer"); break; default: print("sonst"); break; }}

Was würde bei Eingabe des Zeichens 'a' auf dem Bildschirm ausgegeben, wenn überall das break fehlen würde ?

SelbstlautMitlautZiffer