C: switch

Diskussionen zu Tutorials, Änderungs- und Erweiterungswünsche
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

C: switch

Beitrag von nufan » Di Jul 22, 2008 3:42 pm

<edit by="Xin">http://tutorial.proggen.org/doku.php?id=c:switch</edit>

Ist im default-Block denn noch ein break notwendig? Es gibt keine Funktionen, die danach noch ausgeführt werden könnten.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C: switch

Beitrag von Xin » Di Jul 22, 2008 4:57 pm

nufan hat geschrieben:Ist im default-Block denn noch ein break notwendig? Es gibt keine Funktionen, die danach noch ausgeführt werden könnten.
Nötig... nein.

Trotzdem sollte da einer sein, denn ein break zuviel schadet nicht... mal eins vergessen ist in C eine beliebte Fehlerquelle.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C: switch

Beitrag von nufan » Mi Jul 23, 2008 11:54 am

Xin hat geschrieben:
nufan hat geschrieben:Ist im default-Block denn noch ein break notwendig? Es gibt keine Funktionen, die danach noch ausgeführt werden könnten.
Nötig... nein.

Trotzdem sollte da einer sein, denn ein break zuviel schadet nicht... mal eins vergessen ist in C eine beliebte Fehlerquelle.
Ist das nicht von Compiler zu Compiler verschieden? Bei meinem wird zB komplett ohne breaks die kompletten nachfolgenden case-Anweisungen ausgeführt. Aber wie schon gesagt: Eins zuviel schadet ja nicht :D

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: C: switch

Beitrag von Kerli » Mi Jul 23, 2008 12:22 pm

nufan hat geschrieben: Ist das nicht von Compiler zu Compiler verschieden? Bei meinem wird zB komplett ohne breaks die kompletten nachfolgenden case-Anweisungen ausgeführt.
Das soll ja auch so sein. Es geht ja hier nur um den 'default'-Block. Und da er der letzte Block ist, kann man das 'break' ruhig weglassen, weil ja nachher sowieso kein Block mehr kommt der ausgeführt werden könnte.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: C: switch

Beitrag von Dirty Oerti » Mi Jul 23, 2008 1:33 pm

Es zeigt sich mal wieder:

Programmierer sind faule Menschen^^ :)
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: C: switch

Beitrag von Kerli » Mi Jul 23, 2008 1:39 pm

Dirty Oerti hat geschrieben:Es zeigt sich mal wieder:

Programmierer sind faule Menschen^^ :)
Wie kommst du denn da drauf :D

Aber es ist auch so üblich in den 'default' Block kein 'break' hinein zu tun, denn es macht ja den Code weder lesbarer noch sonst irgendwas nützliches...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

C:Switch

Beitrag von Xin » Sa Okt 04, 2008 7:51 pm

<edit by Xin>Zusammengefügt aus einem anderen Thread, bei dem ich wohl das eine oder andere übersehen habe ;-)</edit>

Hallo nufan,

zum einen bitte einen Diskussionsthread erzeugen und im Wiki einen Link auf den Thread setzen, wenn Du eine neue Seite eröffnest, damit das auch Leuten bewußt wird, die nicht wie ich die letzten Änderungen verfolgen.

Zur Diskussion:

Der Artikel gefällt mir gut. :-)

Dennoch möchte ich auf einige Dinge hinweisen, die Du vielleicht noch einarbeiten kannst.
* Die Einleitung ist recht kurz, Du könntest dort vielleicht etwas mehr auf das Problem eingehen, dass Switch löst.
* Du kannst ausschließlich auf Konstanten in case vergleichen und das hat einen guten Grund: der Kompiler vergleicht nicht mit ==, sondern er kann so HashTables anlegen oder eine binäre Suche, oder irgendwas, was ihm einfällt, um möglichst schnell an die cases zu gelangen. Es ist damit eben nicht so, dass bei 10 cases man (mit einem guten Compiler) auch 10 Abfragen benötigt, um an den 10. case zu kommen.
* "Anweisungsblock" erscheint mir passender für "Programmpaket"
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C:Switch

Beitrag von nufan » Sa Okt 04, 2008 8:11 pm

Der Artikel ist nicht von mir :)
Das Original stammt glaube ich von Metamorph (zumindest hat er ihn vor mir zuletzt bearbeitet).
Ich habe ihn heute nur noch ein klein wenig überarbeitet.

Hier jedenfalls der Link:
http://tutorial.proggen.org/doku.php?id=c:switch

Lg

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C:Switch

Beitrag von Xin » Sa Okt 04, 2008 8:20 pm

nufan hat geschrieben:Der Artikel ist nicht von mir :)
Das Original stammt glaube ich von Metamorph (zumindest hat er ihn vor mir zuletzt bearbeitet).
Ich habe ihn heute nur noch ein klein wenig überarbeitet.

Hier jedenfalls der Link:
http://tutorial.proggen.org/doku.php?id=c:switch
Schweigen wir einfach darüber, wer ihn geschrieben hat... es ist lange her, da gab's noch nicht die Diskussionsthreads, ich ändere ihn ;-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C:Switch

Beitrag von nufan » Sa Okt 04, 2008 8:51 pm

:D :D :D
http://proggen.org/viewtopic.php?f=39&t=83

Man sollte auch die 2. Seite beachten ;)

Lg

Antworten