Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "SWITCH - Anweisung. Aufgabe: Zur Nummer eines Tages soll der Wochentag ausgegeben werden. Beispiel: 2 --> Dienstag."—  Präsentation transkript:

1 SWITCH - Anweisung

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

3 Programmieren Sie den Eingabeteil.

4 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

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

6 Dies kann auch durch eine sogenannte SWITCH-Anweisung realisiert werden

7 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

8 Java-Syntax für SWITCH

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

10 Beispiel

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

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

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

14 Beispiel

15 ... 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! Montag Dienstag Mittwoch Donnerstag Freitag Samstag ungültig Sonntag

16 Beispiel

17 ... 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"

18 SWITCH-Anweisung als Struktogramm

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

20 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

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

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

23 // 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; }

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

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

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

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

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

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

30 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 ? Selbstlaut Mitlaut Ziffer


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

Ähnliche Präsentationen


Google-Anzeigen