首頁  >  文章  >  web前端  >  可以在 JavaScript 的 Switch Case 語句中使用表達式嗎?

可以在 JavaScript 的 Switch Case 語句中使用表達式嗎?

Linda Hamilton
Linda Hamilton原創
2024-10-31 20:27:02115瀏覽

Can You Use Expressions in Switch Case Statements in JavaScript?

Switch Case 語句中的表達式求值

在程式設計中寫switch 語句時,您可能會遇到希望在case 子句中使用表達式的情況而不是固定值。雖然 if 語句很容易容納這類表達式,但在這種情況下,人們會擔心 switch 語句的潛在效率。

考慮以下 JavaScript 程式碼:

<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>

在此範例中,我們嘗試評估case 子句中的表達式。然而,我們面臨一個障礙,因為表達式只產生布林值,而我們要比較的金額值是一個數字。這種不匹配會導致 case 子句無法正確觸發。

一個可行的解決方案是採用替代語法:

<code class="javascript">switch (true) {
  case (amount >= 7500 && amount < 10000):
    // Code
    break;
  case (amount >= 10000 && amount < 15000):
    // Code
    break;
  // etc.
}</code>

透過引入 true 標識符,我們有效地將表達式求值轉換為比較與布林值 true。當 case 子句中的表達式計算結果為 true 時,該子句中的程式碼將執行。

雖然這種技術看起來有點不傳統,但它規避了直接比較 case 子句中的表達式時遇到的限制。因此,您可以實現所需的行為,同時保持 switch 語句的效率優勢。

以上是可以在 JavaScript 的 Switch Case 語句中使用表達式嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn