0

私は JavaScript が初めてで、このコードが実行されない理由を理解するのに苦労しています。

var weight;

wight=parseInt(prompt("Please, enter weight");

while(weight>0);

{ 
  if (weight>199 && weight<300);
{

  document.write("Tax will be" + weight*5);
}

  else 
{

  document.write("Tax will be" + weight*10);
}
}

編集:申し訳ありませんが、ここにコードを書き留めているときに「重み」のつづりを間違えました。いずれにせよ、それは問題ではありません。これをGoogle Chromeで実行すると、プロンプトが表示されません。また、プロンプトが表示されても、「if」ステートメントは実行されません。

4

3 に答える 3

3
while (wight>0);

セミコロンは効果的にそのループを作成します。wight が 0 より大きい間は何もしません。これにより、無限ループが強制されます。これが、コードの残りの部分が実行されない理由です。

また、'wight' は'weight' と同じではありません。これは別のエラーです。

さらに、その行を に変更するとwhile (weight > 0)、その後実行されるコードは「重み」を変更しないため、無限ループが発生します。したがって、常に0 よりも大きくなります (0 未満の数値が入力された場合を除きます)。この場合、まったく実行されません)。

あなたが望むのは:

var weight;
weight=parseInt(prompt("Please, enter weight")); // Missing parenthesis
// Those two lines can be combined:
//var weight = parseInt(prompt("Please, enter weight"));

while(weight>0)
{ 
    if (weight>199 && weight<300)// REMOVE semicolon - has same effect - 'do nothing'
    {
        document.write("Tax will be" + weight*5);
        // above string probably needs to have a space at the end:
        // "Tax will be " - to avoid be5 (word smashed together with number)
        // Same applies below
    }
    else 
    {
        document.write("Tax will be" + weight*10);
    }
}

それは構文的に正しいです。無限ループを回避するには、while 条件を変更するか、そのループ内の「重み」を変更する必要があります。

于 2013-10-25T04:57:56.310 に答える
-1

重量のつづり :

while (wight>0);

while (weight>0);

にも

document.write("Tax will be" + wight*10);

document.write("Tax will be" + weight*10);
于 2013-10-25T04:59:08.300 に答える
-1

これを試して

var weight;

weight=parseInt(prompt("Please, enter weight"));

while (weight>0)
{ 
  if (weight>199 && weight<300)
{
  document.write("Tax will be" + weight*5);
}
  else 
{
  document.write("Tax will be" + weight*10);
}
}
于 2013-10-25T05:35:34.037 に答える