Gast
#5691548
Kann man in einer switch Struktur break in eine if-Bedingung setzen? Sieht etwas "komisch" aus und mag ungewöhnlich sein, aber geht das rein techisch?
|
Anzeige
|
c switch break in Bedingung
Gast
#5691548
Kann man in einer switch Struktur break in eine if-Bedingung setzen? Sieht etwas "komisch" aus und mag ungewöhnlich sein, aber geht das rein techisch?
Gast
#5691550
Ja kann man. Aber mann sollte es nicht mit allzu vielen Verschachtelungen übertreiben, da der Quelltext dabei schnell unübersichtlich wird.
Gast
#5691557
Stefanus F. schrieb: > Ja kann man. Aber mann sollte es nicht mit allzu vielen > Verschachtelungen übertreiben, da der Quelltext dabei schnell > unübersichtlich wird. Ja ich mach das ungern, aber es bietet sich aktuell an. Danke für die schnelle Antwort. Absichtlich durchfallende cases sind immer mal wieder gut für ne temporäre Hirnverknotung beim Leser des Codes, ich würd noch nen knappen Kommentar dazu schreiben um sich prophylaktisch für die Unannehmlichkeiten zu entschuldigen und zu erklären warum das an der Stelle passieren muss. Abgesehen davon ist es OK. switchbreak schrieb: > Kann man ... aber geht das rein techisch? was ist bei dir "rein technisch"? Syntax oder Semantik? wenn die Syntax (die Grammatik) nicht stimmt, dann wird dich der Compiler drauf aufmerksam machen. Der Satz "Fahrrad Hund der das isst" ist z.B. syntaktisch fehlerhaft. Wenn die Semantik (die Bedeutung) nicht stimmt, dann wirst du es am Ergebnis merken. Der Satz "Der Hund isst das Fahrrad" ist syntaktisch korrekt, aber die Semantik ist etwas seltsam
Gast
#5691594
Bernd K. schrieb: > temporäre Hirnverknotung hab ich heute den ganzen Tag :) Daher ja die Frage Vielleicht sollte ich mal Schluss machen. So sieht das aus. HEUTE fällt mir nichts besseres ein.
switchbreak schrieb: >> temporäre Hirnverknotung > > hab ich heute den ganzen Tag :) Der Klassiker ist:
Echte Hirnverknotung: ;-)
Gast
#5691609
@ A. K. schreibs doch mal kürzer hin ^^
Gast
#5691613
A. K. schrieb: > Echte Hirnverknotung: ;-) >
Jetzt hast du noch mal geändert. Wenn ich bei Fsll 2 bin, höre ich freiwillig auf ;) Geht noch schöner:
Gast
#5691627
Gast
#5691631
Bernd K. schrieb: > Absichtlich durchfallende cases sind immer mal wieder gut für ne > temporäre Hirnverknotung beim Leser des Codes, ich würd noch nen knappen > Kommentar dazu schreiben Ich würde vorschlagen einen der (pseudo) Standard-Marker dafür zu verwenden: GCC Attribut:
GCC und Clang Marker-Kommentar, eine Reihe von Schreibvariationen von Fall Through, wie:
- blöderweise noch von einer Compiler-Option abhängig. C++17 Standard:
GCC C++ Erweiterung:
Welchen jetzt genau? Ach, das Schöne an Standards ist doch, dass es so viele davon gibt. > sich prophylaktisch für die > Unannehmlichkeiten zu entschuldigen und zu erklären warum das an der > Stelle passieren muss. Warum? Es gibt nur einen Grund: Damit der Code macht was er soll. Peter D. schrieb:
Wer macht denn sowas?!? :-) :-) :-) switch/case ohne break lässt sich auch sehr gut für loop unrolling mit dynamischer Schleifenlänge verwenden. Einen Switch mit nur zwei relevanten Cases würde ich durch ein If-Konstrukt ausdrücken. Dann entfällt in diesem Fall sogar eine Verschachtelungsebene:
Gast
#5691661
Yalu X. schrieb: > Einen Switch mit nur zwei relevanten Cases würde ich durch ein > If-Konstrukt ausdrücken. Kommt drau an. Wenn man für ein Kunstmuseum programmiert , sieht deas doch auch schick aus
PS:
Gast
#5691664
ich mach jetzt besser feierabend ciao
Gast
#5691770
switchbreak schrieb: >
Wieso ist das syntaktisch OK? A. S. schrieb: > Wieso ist das syntaktisch OK? Für wen? Für einen C-Compiler jedenfalls nicht.
Gast
#5692415
Was soll denn da den "Exit" bewirken? Vermutlich hast du ein "break;" vergessen und die Bedingung falsch geschrieben, richtig?
So ist es compilierbar.
Gast
#5692421
Random .. schrieb: > Peter D. schrieb: case 1: > if (!IsZS(SM_BIT_TM)) { > case 2: > ... > break: > } > case 3: > > Wer macht denn sowas?!? :-) :-) :-) z.B. der Herr Adam Dunkel mit seinen Protothreads. https://de.wikipedia.org/wiki/Protothread Und natürlich noch viele mehr. (z.B. meiner seiner)
Gast
#5692435
Arduino Fanboy D. schrieb: > z.B. der Herr Adam Dunkel mit seinen Protothreads. Oha, erinnere mich nicht daran. Ich brauchte Tage, bis ich verinnerlicht hatte, welche Folgen seine Protothreads und die darauf aufbauenden Protosockets für die Programmierung haben. Auf den ersten Blick hat er sich da was ganz tolles ausgedacht, was den Code gut lesbar macht. Aber er hat dabei auch einen grossen Haufen neuer Fallstricke eingeführt. Ich kann von Protothreads nur abraten. Meiner Meinung nach hat er damit die Programmiersprache missbraucht. Für nicht eingeweihte gibt es hier eine kurze Beschreibung auf deutsch: http://stefanfrings.de/net_io/protosockets.html
Gast
#5692461
Hier haben wir das schon diskutiert: Beitrag "Wer benutzt Protothreads?" Stefanus F. schrieb: > Auf den ersten Blick hat er sich da was ganz tolles ausgedacht, was den > Code gut lesbar macht. Das stimmt. Damit kann besonders ein Anfänger sehr einfach Multitasking programmieren, was deutlich besser ist, als sich mit tausenden Delays die Echtzeit zu zerschießen. Die automatische Case-Generierung ist recht clever. Die Fallsticke halten sich im Rahmen bei kleinen Programmen. In der 4ma wird man dafür natürlich gesteinigt. Stefanus F. schrieb: > Oha, erinnere mich nicht daran. Ich brauchte Tage, bis ich verinnerlicht > hatte, welche Folgen seine Protothreads und die darauf aufbauenden > Protosockets für die Programmierung haben. Solche Methoden genialer Minimalistik funktionieren deutlich besser, wenn man sie sich selbst ausgedacht hat. ;-)
Gast
#5693247
A. K. schrieb: > case 1: > if (!IsZS(SM_BIT_TM)) { > case 2: > ... > } > break: Markus F. schrieb: > https://de.wikipedia.org/wiki/Duff% hier wieder der Beweis, dass C einfach nur sch... ist. Anstatt die Sprache zu verbessern, werden Krückenkonstrukte generiert und die Gemeinde geilt sich daran auf. Sorry, geht gar nicht. :-<<<
Gast
#5693256
Man kann in jeder Programmiersprache Krückenkonstrukte bauen. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|