Was macht der switch befehl und was sind die vorteile gegen über if else?
4 Vorteile wären toll ich weiß nur das der Code übersichtlicher wird :)
3 Antworten
![](https://images.gutefrage.net/media/user/GrakaVII/1489282012736_nmmslarge__40_40_720_720_4a5fc093638cdf4046f93bf84d646af4.png?v=1489282015000)
Das es übersichtlicher ist, ist eigentlich der hauptsächliche Vorteil von einer Switch-Case Verzweigung. Deinem Compiler erspart es noch ein wenig arbeit, weil es nicht n-fach verschachtelt ist und damit effizienter.
![](https://images.gutefrage.net/media/user/GrakaVII/1489282012736_nmmslarge__40_40_720_720_4a5fc093638cdf4046f93bf84d646af4.png?v=1489282015000)
Den Compiler gibt es nicht. Was die Frage betrifft
https://stackoverflow.com/questions/767821/is-else-if-faster-than-switch-case
![](https://images.gutefrage.net/media/user/Lezurex/1575979598014_nmmslarge__0_0_796_796_cce3bba999d2f4ba9ba6f831bd4f56ac.jpg?v=1575979598000)
Deine Hausaufgaben kannst du immer noch selbst machen, daher weise ich dich einfach mal darauf hin: https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/statements/selection-statements
Vergleiche selbst und ziehe deine eigenen Schlüsse daraus.
![](https://images.gutefrage.net/media/user/rhavin/1447244186566_nmmslarge__2_2_531_531_c22905e846ea2ffed567961f72a77feb.jpg?v=1447244187000)
Der einzige Vorteil von Switch bei gleichem Vergleichsobjekt ist ein etwas übersichtlicherer Sourcecode. Der Vorteil von if / elsif /else ist, dass man jeder zeit was anderes Vergleichen kann:
Eine Sache wird verglichen:
switch (obst) {
case apfel:
case birne:
/* hier apfel oder birne */
break;
case melone:
/* hier nur melone */
break;
}
Unterschiedliche Vergleiche möglich:
if (apfel == birne) {...}
elsif (melone == kirsche) {...}
Das ist Unsinn. Der Compiler macht daraus bedingte Sprünge und interessiert sich nicht für Verschachtelungen.