Die Switch-Anweisung ist am engsten mit der If-Anweisung verwandt. Sie ist auch eine Flusskontrollanweisung, die häufig in anderen Programmiersprachen verwendet wird. Wenn Sie jedoch nicht auf dieses Detail achten macht beim Schreiben von Programmen oft Fehler.
Code:
var n = '5'; switch(n){ case 5: alert('执行case分支'); break; default: alert('执行default分支'); }
Ergebnis:
Viele Leute denken vielleicht fälschlicherweise, dass das obige Programm den Case-Zweig übernimmt, aber am Ende übernimmt es den Standardzweig. Sind die beiden nicht gleich? Werfen wir einen Blick mit der if-Anweisung.
Code:
var n = '5'; if(n==5){ alert('真 分支'); }else{ alert('假 分支'); }
Ergebnis:
Es kann in der if-Anweisung übereinstimmen, aber warum kann es in der switch-Anweisung nicht übereinstimmen?
Das liegt daran, dass die Groß-/Kleinschreibung in der Switch-Anweisung den kongruenten Modus verwendet, was der Verwendung von drei Gleichheitszeichen in if entspricht. Schreiben wir den Fallcode um
Code:
var n = '5'; switch(n){ case '5': // 把原来的 case 5 改写成 case '5' alert('执行case分支'); break; default: alert('执行default分支'); }
Ergebnis:
Nach dem Umschreiben können Sie den Fallzweig übernehmen, so wie wir drei kongruente Zeichen in if
verwendenCode:
var n = '5'; if(n===5){ alert('真 分支'); }else{ alert('假 分支'); }
Ergebnis:
Da Kongruenz verwendet wird, ist die Zeichenfolge 5 nicht gleich der Zahl 5 und das Ergebnis ist ein falscher Zweig.
Das obige Beispiel zeigt, dass der kongruente Abgleichsmodus in switch verwendet wird, insbesondere ein Problem, das beim Abgleich von Zahlen und Zeichenfolgen beachtet werden muss