Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
micdah
Anmeldungsdatum: 02.12.2011 Beiträge: 71
|
Verfasst am: 04.01.2012, 22:46 Titel: select case vs. if then else |
|
|
select case vs. if then else
/edit dreael: Umfrage entfernt, da typischer Äpfel-mit-Birnen-Vergleich |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 04.01.2012, 23:40 Titel: |
|
|
so eine dämliche umfrage, die beiden statements werden zu völlig unterschiedlichen CPU-kommandos übersetzt xD lies mal ein bisschen nach bevor du so blöde fragen stellst
grundsätzlich aber: Das was im vorliegenden anwendungsfall am besten zu lesen ist. Sprich bei nem "a oder b" halt if/else, bei nem "a, b, c, d, e, oder vielleicht auf f" dann natürlich switch/case. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 05.01.2012, 15:40 Titel: |
|
|
Beide Statements haben ihre jeweiligen Einsatzgebiete. IF..THEN ELSEIF .. THEN-Ketten macht bei freien Bedingungsausdrücken Sinn, z.B.
Code: | IF anzahl% < 10 THEN
..
ELSEIF v%(9) = 55 THEN
..
ELSEIF LEFT$(j$, 2) = "Ab" THEN
..
ELSEIF f! < 2.3 THEN
..
ELSE
..
END IF |
Dagegen stellt SELECT CASE eine Verkürzung von beispielsweise
Code: | IF a%=1 THEN
...
ELSEIF a%=2 THEN
...
ELSEIF a%=3 THEN
...
ELSE
...
END IF |
dar, d.h. alle Bedingungsausdrücke haben immer die Form "IF a%=" => Dies kann der Compiler effizienter übersetzen, weil in diesem Fall der Ausdruck a% nur einmal ausgewertet werden muss und z.B. im CPU-Register für all die kommenden z.B. BNEs (Branch if Not Equal) bereitgehalten werden kann. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|