Hi
Zitat Zitat von ReED
If und Else benutzt du wenn du nur eine oder maximal zwei mögliche Antworten hast.
Switch hingegen kannst du nutzen wenn es mehrere Möglichkeiten gibt.
Generell kann ein Switch immer durch viele IF's ersetzt werden.
Das ist Unsinn.

Die switch-case-Anweisung verwendest Du, wenn Du genau eine Variable auf verschiedene genau definierte Werte überprüfen willst, die if-Anweisung erlaubt Dir auch Vergleiche, also z.B. "größer als", "kleiner als", außerdem logische Verknüpfungen (z.B. and und or, findet z.B. Anwendung, wenn Du überprüfen möchtest, ob Variable a einen bestimmten Wert hat und Variable b einen anderen bestimmten Wert hat - mit switch-case-Anweisungen so gut wie garnicht umsetzbar...).

Beispiel:
Code:
int i;
int j;

[...]

switch(i) // im gesamten switch-case-Statement dreht sich alles um die Variable i!
{
  case 1: // nur Überprüfung auf konkrete Werte möglich!
[...]
  default: // wenn keins der geprüften konkreten Ereignisse eingetreten ist
[...]
}

if((i == 1 && j == 999) || (i >= j)) // der gesamte Ausdruck muss true "ergeben"
{
[...]
}else if(!(*)(int*)i[i^j*(i <<= j)]) // vom ersten Fall völlig unabhängiger Ausdruck
{
[...]
}else // wenn keiner der geprüften Ausdrücke true "ergab"
{
[...]
}
Mit der Anzahl der überprüfbaren Ausdrücke (war das mit "Antworten" gemeint???) hat das nichts zu tun!
Es stimmt, dass man switch-case-Anweisungen immer durch if-Anweisungen ersetzen kann, wenn man aber ein swich-case-Konstrukt anwenden kann, sollte man das auch tun, es ist meist übersichtlicher, vor allem anderen ist es aber viel schneller...

GreetZ RiDER