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