switch判斷中,case后面跟邏輯表達式出錯


let status=1;
switch (status) {
    case 1:
      console.log("status為1的時候你將做的事");
      break;
    case 2:
      console.log("status為2的時候你將做的事");
      break;
    case 3:
      console.log("status為3的時候你將做的事");
      break;
    case 4 || 5:
      console.log("status為4和5將做一樣的事");
      break;
  }

 

這樣的表達式會執行status為1,2,3,4,但是不會執行status為5,因為前三條case的結果是直接的數值,而第四條case的運算結果是4,所以就會走不到status為5的時候。
而要走到5的話,4和5就需要像前面幾條case語句那樣分開寫。

但實際上,在某些需求下,switch的case后面是可以跟邏輯表達式的。如:

let score = 88;
  switch (true) {
    case score < 60:
      console.log("D");
      break;
    case score >= 60 && score < 70:
      console.log("C");
      break;
     case score >= 70 && score < 80:
      console.log("B");
      break;
    case score >= 80:
      console.log("A");
      break;
  }

參考:https://www.cnblogs.com/yaotome/p/7222018.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM