Laden...

if oder Switch Case

Erstellt von zerberos vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.923 Views
Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 14 Jahren
if oder Switch Case

Hallo zusammen,

ich habe mal eine ziemliche Basic Frage

Was ist schneller bzw was sollte man eher benutzen:

Code 1:

if (wert == "1") {
    //Anweisung
    }
if (wert == "2") {
    //Anweisung
    }
if (wert == "3") {
    //Anweisung
    }
if (wert == "4") {
    //Anweisung
    }

Code 2:


switch (wert) {
        case "1":
            //Anweisung
            break;        
        case "2":
            //Anweisung
            break;        
        case "3":
            //Anweisung
            break;        
        case "4":
            //Anweisung
            break;    
    }
S
8.746 Beiträge seit 2005
vor 14 Jahren

Die 2. Variante ist schneller. Wenn du die 1. äquivalent schreibst (mit else if), dann ist die Performance praktisch gleich, aber die switch/case-Variante wohl übersichtlicher...

I
302 Beiträge seit 2008
vor 14 Jahren

ja, wenn schon if dann


if (wert == "1") {
    //Anweisung
    }
else if (wert == "2") {
    //Anweisung
    }
...

ich würde auch auf jeden fall switch in diesem fall nehmen. Hier ist klar, dass sich die abfrage genau auf eine variable bezieht. Damit schafft man gute übersichtlichkeit.

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo zerberos,

der Performanceunterschied ist auf heutigen Rechnern vernachlässigbar.
Wichtiger ist in diesem Falle die Lesbarkeit des Codes, von daher rate ich - wie svenson und itstata - zum switch-Konstrukt.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

888 Beiträge seit 2007
vor 14 Jahren

Aber es gibt auch andere Meinungen, ich benutze grundsätzlich die "else If - Variante".

1.346 Beiträge seit 2008
vor 14 Jahren

Ich benutze switch nur, wenn ich genau weiß, dass ich es später nicht um solche Sachen

int.Parse(wert) > 5

erweitern möchte. Sonst wird es nähmlich lästig.

Gruß pdelvo

458 Beiträge seit 2007
vor 14 Jahren

Wer naemlich mit "h" schreibt ist daemlich!

be the hammer, not the nail!

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo aequitas,

... du also auch 😉. SCNR!

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

X
1.177 Beiträge seit 2006
vor 14 Jahren

huhu,

in diesem speziellen Fall - hier werden Strings verglichen - gabs hier im Forum mal eine Analyse dazu. Ich finde den Thread nicht, aber ich hab die Aussage noch im Hinterkopf:

Eine switch über einen String wird vom Compiler als if umgesetzt. Aber einer gewissen Anzahl von Case-Klauseln wird das ganze intern in eine sortierte Liste gepackt.

😃

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Xynratron,

... in eine sortierte Liste ...

... oder ein Dictionary, was bei sehr vielen Strings einen signifikanten Vorteil bedeuten kann. Allerdings wird man vermutlich nie so viele cases haben, dass man einen Unterschied spürt.

herbivore

3.971 Beiträge seit 2006
vor 14 Jahren

Wer naemlich mit "h" schreibt ist daemlich!

Also ich schreib nämlich immer mit h und zwar am Ende 😄

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...