Ausdrucksauswertung in Switch-Case-Anweisungen
Beim Erstellen von Switch-Anweisungen in der Programmierung kann es vorkommen, dass Sie Ausdrücke in Case-Klauseln verwenden möchten statt fester Werte. Während if-Anweisungen solche Ausdrücke problemlos berücksichtigen, bestehen Bedenken hinsichtlich der potenziellen Effizienz von switch-Anweisungen in solchen Szenarios.
Betrachten Sie den folgenden JavaScript-Code:
<code class="javascript">function reward(amount) { var $reward = $("#reward"); switch (amount) { case (amount >= 7500 && amount < 10000): $reward.text("Play Station 3"); break; case (amount >= 10000 && amount < 15000): $reward.text("XBOX 360"); break; case (amount >= 15000): $reward.text("iMac"); break; default: $reward.text("No reward"); break; } }</code>
In diesem Beispiel versuchen wir eine Auswertung Ausdrücke innerhalb der Case-Klauseln. Wir stehen jedoch vor einem Problem, da die Ausdrücke nur boolesche Werte liefern, während der Betragswert, den wir vergleichen, eine Zahl ist. Diese Nichtübereinstimmung verhindert, dass die Case-Klauseln korrekt ausgelöst werden.
Eine praktikable Lösung ist die Verwendung einer alternativen Syntax:
<code class="javascript">switch (true) { case (amount >= 7500 && amount < 10000): // Code break; case (amount >= 10000 && amount < 15000): // Code break; // etc. }</code>
Durch die Einführung des wahren Bezeichners wandeln wir die Ausdrucksauswertung effektiv in einen Vergleich um mit dem booleschen Wert true. Wenn der Ausdruck in einer Case-Klausel „true“ ergibt, wird der Code in dieser Klausel ausgeführt.
Obwohl diese Technik etwas unkonventionell erscheint, umgeht sie die Einschränkungen, die beim direkten Vergleich von Ausdrücken in Case-Klauseln auftreten. Dadurch können Sie das gewünschte Verhalten erreichen und gleichzeitig die Effizienzvorteile von Switch-Anweisungen beibehalten.
Das obige ist der detaillierte Inhalt vonKönnen Sie Ausdrücke in Switch-Case-Anweisungen in JavaScript verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!