如何使用switch case range JavaScript

时间:2016-10-18 06:25:06

标签: javascript

我正在尝试使用像这样的siwtch案例JavaScript

 <p id="demo"></p>

  <script>
  var n=new Date();
  var jam=n.getHours();
  switch (jam) {
  case (jam>='17'):
    time = "sleep";
    break;
   case (jam<'17'):
    time = "work";
    break;     
   }
  document.getElementById("demo").innerHTML = "This Time for " + time;
  </script>

但这似乎没有出现

4 个答案:

答案 0 :(得分:2)

您使用switch()case的方式不正确。因为当您尝试检查状态而不是范围时使用switch。如果您想检查范围,请使用if()else状态,如下所示:

<p id="demo"></p>

  <script>
  var n=new Date();
  var jam=n.getHours();

  if ( parseInt(jam) >= 17){
    time = "sleep";
  } else if ( parseInt(jam) <17)
    time = "work";
  } else {
    time = " play :) "
  }

  document.getElementById("demo").innerHTML = "This Time for " + time;
  </script>

答案 1 :(得分:1)

如果您尝试使用switch检查范围,则需要修改开关案例,否则您必须采用传统的if else条件。我已根据您的要求修改了代码。请检查一下。

&#13;
&#13;
 <html>
     <body>
         <p id="demo"></p>

         <script>
                var n=new Date();
                var jam=n.getHours();
                var time = "";
                switch (true) {
                       case (jam>=17):
                              time = "sleep";
                              break;
                       case (jam<17):
                              time = "work";
                              break;     
                 }
                document.getElementById("demo").innerHTML = "This Time for " + time;
         </script>
         </body>
  </html>
&#13;
&#13;
&#13; 使用if else。

&#13;
&#13;
    <html>
         <body>
             <p id="demo"></p>

             <script>
                    var n=new Date();
                    var jam=n.getHours();
                    var time = "";
                    
                    if (jam>=17){
                       time = "sleep";
                    }
                                  
                    else if (jam<17){
                       time = "work";
                    }   
                    document.getElementById("demo").innerHTML = "This Time for " + time;
             </script>
             </body>
      </html>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用this.loginService.authenticate(this.model.login_id, this.model.password) .subscribe((response) => { if(response.status == 404){ this.submitError = true; } else{ // do something } }, error => { console.log(error); this.submitError = true; }); 并在案例陈述中使用条件,在选择部分使用case

使用fall tr​​ough样式首先检查smalles值和更大的值。检查必须使用数字,而不是示例中的字符串。

至少你coluld使用默认分支并指定somthing默认值,这在所有其他条件都不满足时有效。

true

答案 3 :(得分:0)

我修复了你的代码,这里是js小提琴

https://jsfiddle.net/qkpmkzoh/

固定代码就是这样。

  var n=new Date();
  var jam=n.getHours();
  var time = "";
  console.log(jam);
  switch (true) {
  case jam>=17:
    time = "sleep";
    break;
   case jam<17:
    time = "work";
    break;     
   }
  document.getElementById("demo").innerHTML = "This Time for " + time

但是我建议你使用if else,因为它使代码更具可读性

  var n=new Date();
  var jam=n.getHours();
  var time = "";
  console.log(jam);
  if (jam>=17){
   time = "sleep";
  }
    else if(jam<17) {
    time = "work";
  }