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

posted @ 2021-01-06 18:30  阿凡凡没有提  阅读(1092)  评论(0编辑  收藏  举报