0

ブラウザには何も表示されず、JavaScript にはそれを実行するためのコンパイラがないため、この言語でエラーをチェックする方法がわかりません。

私のHTML

<!doctype html>
<html>
  <head>
    <title>Where am I?></title>
    <script src="script4.js"></script>
  </head>
  <body>
  </body>
</html> 

私のscript4.js

var number = 20;
switch(number) {
  case number > 0:
    alert(number + " is Positive");
    break;
  case number ===  0:
    alert(number + " is zero");
    break;
  case number < 0;
    alert(number + " is negative");
  default:
    alert(number + " is not a number");
}
4

3 に答える 3

3

それswitchは通常、ステートメントがどのように使用されるかではありません。への引数caseは、数値、文字列、またはブール値でなければなりません (この場合、ブール値に解決される式を使用できますが、を使用する代わりにそれを行う必要がある理由がわかりませんif。後者の方が簡単だと思います)読んで理解する):

switch(number) {
   case 1: 
      alert("number is 1");
      break;
   ...
   ...

   default:
      alert("Unknown number");
}

ここで使用する必要があるのは次のif/elseとおりです。

if(number > 0) {
   alert("number is positive");

} else if(number === 0) {
   alert("number is zero");

} else if(number < 0) {
   alert("number is negative");

} else {
   alert("not a number");
}

ブール式を使用すると、 への引数がorswitchのブール値と比較されます。つまり、基本的に の数値をまたはと比較していて、決して一致することはありません。truefalsenumbertruefalse

于 2012-05-11T17:04:58.073 に答える
1

RedFilter のソリューションが機能するとは思いもしませんでした。(知っておくと便利です!) ほとんどの C ベースの言語では、特定の値に対してのみ照合できます。したがって、一般的にはif/elseチェーンが使用されます。

if (number > 0) 
    alert(number + " is Positive");
else if (number === 0)
    alert(number + " is zero");
else if (number < 0)
    alert(number + " is negative");
else 
    alert(number + " is not a number");
于 2012-05-11T17:04:53.360 に答える