0

ヘルプ!if/elseif/else コード ブロックは機能しません。コードが「何をしますか?」というプロンプトに達すると、何を入力しても、すべてのアラートが表示されます。if ブロックにないコマンドを入力すると空白になり、R、L、または M を入力した場合は警告が表示されます。F を入力しても警告は表示されません。

while (Room = 1) {
    var Choice = prompt ("What will you do?");
    if (Turn = "Start");
    {
        if (Choice = "F");
    {
        Turn = "1";
    }
    else if (Choice = "R");
    {
        alert ("You cannot do that...");
    }
    else if (Choice = "L");
    {
        alert ("You cannot do that...");
    }
    else if (Choice = "M");
    {
        alert ("    1"+'\n'+"    1" + '\n' + "221" + '\n' + "    X");
    }
    else 
    {
        alert ("You cannot do that...")
    }
}
4

7 に答える 7

5

==の代わりに使用し=ます。単一の equals は変数の代入であり、代入の結果として評価されます。==同等性テストに使用されます。

于 2013-10-08T06:52:44.857 に答える
2

;if および else if ステートメントから 削除します。

;ステートメントの終わりを表します

=また、@Andyが述べたように、代わりに==または===(厳密な比較)として比較操作として使用することはできません。

while (Room == 1) { // Actually your code fails at the beginning itself.

ただしswitch、ケースに使用することをお勧めします。

于 2013-10-08T06:52:12.013 に答える
1

"=" single equal to と書くと、その変数に値を代入することを意味します。そのため、条件付きの目的で、 「=」シングルを「==」ダブル等号に変更する必要があります。

そして、他に終わりがない場合は「;」Javascript ではセミコロンが必要です。それを削除しました。

以下を更新しましたので、お試しください。

while (Room == 1) {
    var Choice = prompt ("What will you do?");
    if (Turn == "Start")
    {
        if (Choice == "F")
        {
            Turn == "1";
        }
        else if (Choice == "R")
        {
            alert ("You cannot do that...");
        }
        else if (Choice == "L")
        {
            alert ("You cannot do that...");
        }
        else if (Choice == "M")
        {
            alert ("    1"+'\n'+"    1" + '\n' + "221" + '\n' + "    X");
        }
        else 
        {
            alert ("You cannot do that...");
        }
    }
}
于 2013-10-08T06:55:54.377 に答える
0

すべての if-elseif ステートメントの後にセミコロンがあります。したがって、ブール値が if 内にあるものに関係なく、if ブロックは空です。セミコロンを削除するだけで準備完了です。

これとともに:

if(1 == 1);
{
    alert('Nope');
}

if ステートメントの後のブロックは、if の末尾にセミコロンがあるため、常に実行されます。

if(1 == 1)
{
   alert('Yup');
}

動作します。

于 2013-10-08T06:52:07.223 に答える
0

andループ;の末尾にあるセミコロンを削除しますifelse if

==また、を使用して文字列を比較します。=

コードをこれに置き換えます

while (Room = 1) { //here Room is int variable
  var Choice = prompt ("What will you do?");
  if (Turn == "Start")
  {
    if (Choice =="F")
    {
      Turn = "1";
    }
    else if (Choice == "R")
    {
      alert ("You cannot do that...");
    }
    else if (Choice == "L")
    {
      alert ("You cannot do that...");
    }
    else if (Choice == "M")
    {
      alert ("1" + '\n' + "1" + '\n' + "221" + '\n' + "X");
    }
    else 
    {
      alert ("You cannot do that...")
    }
}
于 2013-10-08T06:53:20.997 に答える
0

Java scrip は単一の '=' を考慮しません '==' で動作します

try
if (Turn == "Start");

Instead of
if (Turn = "Start");
于 2013-10-08T06:56:07.057 に答える
-1

また、厳密な比較を使用する以外に、新しい行ではなく if(...) の直後に左中括弧を書くことを強くお勧めします。

お気に入り:

if(...){

それ以外の:

if(...)
{

その理由は、JavaScript の組み込みのセミコロン挿入であるため、サイレント エラーや予期しない動作が発生する場合があります。他のプログラミング言語では問題にならないものもありますが、JavaScript では重要です。

于 2013-10-08T08:38:44.363 に答える