K02 if zu switch umwandeln
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 35 | |
Autor | ||
Lizenz | CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben. | |
Identifikatoren | 10.5446/9606 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache | ||
Produzent |
Inhaltliche Metadaten
Fachgebiet | |
Genre |
1
4
30
31
34
00:00
QuadratVariableLeistung <Physik>ZahlenbereichFormation <Mathematik>VollständigkeitTOUR <Programm>InterleavingSwitch <Kommunikationstechnik>ZahlCASIteriertes FunktionensystemC sharpSchreiben <Datenverarbeitung>DefaultComputeranimation
Transkript: Deutsch(automatisch erzeugt)
00:02
Probieren wir mal eine Aufgabe, in der eine Verschachtelung von ifs umzuwandeln ist in ein Switch in a-gleich-42. Und jetzt könnte ich aber Folgendes haben, wenn a-gleich-4 ist, dann tue dieses.
00:27
Schreibe ich jetzt nicht hin, da könnten irgendwelche Funktionsaufrufe stehen oder ähnliches. Und wenn es nicht gleich 4 ist, sondern wenn es kleiner ist als 3 und größer gleich 0 ist, dann tue dieses, was da als nächstes steht.
01:04
Okay, das würde ich jetzt gerne umformulieren mit einem Switch, sodass es für alle a's funktioniert. Also dieses 42 soll da nicht feststehen, dieses 42 kann eine eingegebene Zahl sein, ein Messwert, was auch immer. Hier kommt irgendwas an in der Variable a und ich möchte, was hier mit if, else if steht, umschreiben in ein Switch.
01:32
Genau, korrekte Bemerkung, hier dieses else, Schweifklammer, Schweifklammer. Wenn da nur das if drin steht, habe ich Ihnen auch so gezeigt, lässt man gerne diese Schweifklammer weg, um es etwas übersichtlicher zu machen.
01:45
Else if in dieser Form, ist das nicht ganz so heftig geklammert, so wird man es typischerweise schreiben. Grundsätzlich Idee für solche Sachen, schreiben Sie erstmal die Schablone hin. Was soll es denn werden?
02:03
Was wissen Sie über das, was es werden soll? Es soll werden, wie funktioniert ein Switch? Was kann ich jetzt alles schon für das Switch hinschreiben? Also ohne, dass Sie irgendwas nennenswert nachdenken, wissen Sie, es muss ein Switch von a. Je nachdem, was in der Variable a steht, tue ich irgendwas Besonderes.
02:26
Je nach Wert von a verzweige, das Switch verlangt außerdem, dass da Schweifklammern stehen. Die kann man auch sofort hinschreiben. Und was da auch stehen muss, was klar ist, Sie brauchen mindestens irgendeinen Case.
02:43
Wenn der Wert von a gleich so und so viel ist, und dann wissen Sie auch sofort, da kommt ein Doppelpunkt dahinter, so funktioniert c. Wenn der Wert von a gleich so und so viel ist, Doppelpunkt, tue dieses oder jenes. Soweit können Sie es schon hinschreiben, ohne irgendwie nachgedacht zu haben.
03:00
Das ist alles im Standard drin. Genau, der erste ist einfach. Wenn a gleich 4 ist, tue das. Jetzt sollte ich hier mal klar machen, was ich da tue. Wie nenne ich den mal? Ich schreibe hier mal Teil 1 hin und hier Teil 2 hin.
03:22
Wenn a gleich 4 ist, also Case 4, gucke dir den Wert der Variablen an. Wenn der 4 ist, dann tue was da steht. So sieht das bisher aus. Sie können in der Tat mehrere Cases untereinander schreiben.
03:45
Das gilt ja, wenn a gleich 0 ist. Und das gilt auch, wenn a gleich 1 ist. Und das gilt auch, wenn a gleich 2 ist. Das sind die 3 Fälle, in denen das gilt. a ist ganzzahlig, wenn a gleich 0 ist, ist größer gleich 0, kleiner 3. Wenn a gleich 1 ist, ist es größer gleich 0, kleiner 3 und so weiter.
04:03
Wenn a gleich 2 ist, haut es auch noch hin. Wenn a gleich 3 ist, haut es nicht mehr hin. Hier steht ja kleiner, nicht kleiner gleich. Also in diesen 3 Cases soll Teil 2 ausgeführt werden. Das ist jetzt aber noch nicht ganz korrekt, denn was ist jetzt noch?
04:22
Wann passiert hier Blödsinn? Genau, C ist eine sehr nachlässige Sprache. C Sharp z.B. erzwingt an dieser Stelle, dass sie da einen Break reinsetzen. In C können Sie das Break reinschreiben oder nicht reinschreiben.
04:40
Wenn Sie das hier nicht reinschreiben, haben Sie im Allgemeinen einen größeren Blödsinn veranstaltet. Wenn Sie da kein Break reinschreiben, heißt das, wenn a gleich 4 ist, geht er in diesen Case 4 rein, führt Teil 1 aus. Wenn sich vorher stünde, kein Break, würde er hier weitermachen, Case 1 und Teil 2 auch noch ausführen. Das ist im Allgemeinen nicht das, was man haben will.
05:02
Also gehört da ein Break rein, um zu sagen, hier jetzt das Switch abbrechen. Das Break taucht sonst ja nur an anderen Stellen auf. Wo taucht eigentlich das Break sonst auf? Genau, Vorsicht, Vorsicht, Vorsicht. Typischerweise taucht das Break bei Schleifen auf. Ja, in der Schleife bedeutet das, die Schleife abzubrechen.
05:22
Vorsicht, das muss ich gleich nochmal hinschreiben. Also wenn Sie eine Schleife haben wie 4inti gleich 0i kleiner 10i++, und Sie haben das Break in der Schleife, sowas zum Beispiel if i,
05:44
doch was machen wir mal sinnvolles, mache solange, wie das Quadrat von i kleiner ist, als 5 von mir aus. Und wenn es größer gleich 5 ist, wenn es größer ist, größer gleich 5 ist das Quadrat von i, dann breche ich ab.
06:01
So in dieser Form. Da das Break heißt wirklich, die Schleife abzubrechen, nicht zum nächsten Durchlauf zu gehen, sondern die Schleife abzubrechen. Das heißt, das Break hier in der Schleife. Also beim For geht das und bei dem Do-While geht das. Das ist eigentlich die übliche Art, wie man das Break sieht. Das andere Ding in den Schleifen war Continue.
06:21
Wenn Sie hier Continue reinschreiben, heißt das, gehe wieder zum Anfang der Schleife und mache den nächsten Durchlauf. Hier wäre das Continue ziemlich pünzlig, es müsste noch was passieren, sonst ist das nicht sinnvoll. Also mit diesem Continue sagen Sie, wenn denn das Quadrat von i größer gleich 5 ist,
06:42
dann mache ich nicht weiter in der Schleife, sondern gehe zum nächsten Schleifendurchlauf. Das heißt das Continue. Und Break heißt wirklich, die Schleife abzubrechen. Ich sollte jetzt aber sagen, die Schleife, die als nächste außen drum ist, hier außen drum könnte ja noch eine weitere Schleife stehen. Stellen Sie sich vor, da stünde noch ein Weil irgendwas mit Schleifklammern.
07:03
Das Continue und das Break beziehen sich dann beide auf das For, auf die innerste Schleife. Nicht auf Schleifen, die weiter außen stehen. Zurück zu unserem Switchcase hier. Also Sie brauchen hier das Break, um sicherzustellen, dass er nicht in Fall 4 behandelt,
07:20
das ausführt und dann hier mit Teil 2 weitermacht. Man würde sicherheitshalber hier noch einen Break dahinter schreiben, man weiß ja nie. Und man würde wahrscheinlich hier sogar noch Default dahinter schreiben. Und wenn man ganz heftig drauf ist, sogar noch einen Break hinter das Default schreiben. Wäre nicht nötig, fühlt sich sauberer an, wenn Sie all das noch dazuschreiben.
07:45
Default, was heißt Default an der Stelle? Genau, das ist das Richtige. Wenn nichts von den Cases zutrifft, macht der Default den Standardwert, die Standardlösung. Die Standardlösung hier für mein If ist natürlich gar nichts zu tun.
08:00
Wenn a gleich 4 ist, tue das eine. Wenn a zwischen 0 und 3 ausschließlich 3 einschließlich der 0 liegt, tue das andere. Die Standardlösung für mein If ist gar nichts zu tun. Insofern kann ich auf das Default verzichten, weil es nichts tut. Es sieht sauberer, richtiger aus, wenn man es dazuschreibt, weil dann alle Leute, die dieses Programm später sehen, wissen, dass man weiß, was man tut.
08:25
Wenn keiner von diesen vier Werten kommt, bitte nichts tun.