2016-10-18 6 views
0

私はsiwtch場合はJavaScript どのように使用するスイッチケースの範囲はJavaScript

このような​​3210

を使用しようとしているが、これは間違った方法でswitch()caseを使用しているもの

+2

コードをより読みやすくなりますよう、あなたが 'IF()else'状態ではない'スイッチ()case'を使用する必要があり、使用することをお勧めいたしますでしょうしかし

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 

xAqweRx

+1

http://www.w3schools.com/jsref/jsref_switch.aspスイッチケースの仕組みをお読みください。あなたはelse elseを使用する必要があります – sinsuren

+0

なぜこの場合単純な 'if else'文を使用していませんか?さもなければ、式は数値ではなく 'ブール値'を返すので、スイッチケースは決して一致しません。また、整数を比較しているので、引用符を使用しないでください。 – enricog

答えて

2

を表示されませんでした。状態をチェックしようとしているが、範囲をチェックしようとしていないときは、switchが使用されているためです。あなたは範囲を確認したい場合は、むしろこのようif()else状態を使用したい:

1

あなたは、あなたが伝統的なif elseのために行く必要が他のswitchを、使用して範囲をチェックしようとしている場合、スイッチケースを変更する必要があります調子。私はあなたの要件ごとにコードを変更しました。これを確認してください。それ以外の場合は使用

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

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

0

あなたはcaseを使用して、選択部分のcase文とtrueで条件を使用することができます。

小数点の値と大きな値を最初にチェックするために、谷型を使用します。チェックでは、例のように文字列ではなく数字を使用する必要があります。

少なくともあなたはデフォルトブランチを使用してデフォルトのようなものを割り当てます。これは他の条件がすべて満たされない場合に機能します。私はあなたのコードを修正した

var n = new Date(), 
 
    jam = n.getHours(), 
 
    time = ''; 
 

 
switch (true) { 
 
    case (jam < 9): // this leads to if (true === (jam < 9)) { ... 
 
     time = "coffee"; 
 
     break; 
 
    case (jam < 17): 
 
     time = "work"; 
 
     break; 
 
    case (jam < 19): 
 
     time = "relaxing"; 
 
     break; 
 
    default: 
 
     time = "sleep"; 
 
} 
 
console.log("This Time for " + time); 
 
console.log(jam);

0

、ここのJSフィドル

https://jsfiddle.net/qkpmkzoh/

と固定コードはこれです。それ以外の場合、私はそれがこのケースでは

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