1

if... else if ステートメントを使用して、ユーザーに有効な応答を求め続けるにはどうすればよいですか? 私のスクリプトは現在一度動作しますが、その後壊れます:

var enterNum = prompt("Please enter a number between 1 and 100", "");


if (isNaN(enterNum)){
    enterNum = prompt("You did not enter a valid number. Please try again", "")
}
else if (enterNum < 1 || enterNum >100){
    enterNum = prompt("Your number is not between 1 and 100. Please try again", "")
}
else{
    document.write("Your number is ", enterNum)
}

前もって感謝します!

4

5 に答える 5

9
var enterNum = prompt("Please enter a number between 1 and 100", "");

while(isNaN(enterNum) || enterNum < 1 || enterNum >100) {
    enterNum = prompt("You did not enter a valid number. Please try again", "")
}
document.write("Your number is ", enterNum)
于 2011-08-05T18:43:19.807 に答える
1

if/else だけではできません。ループを使用します。例:

var enterNum = prompt("Please enter a number between 1 and 100", "");
while(true)
{
  if (isNaN(enterNum)){
      enterNum = prompt("You did not enter a valid number. Please try again", "")
  }
  else if (enterNum < 1 || enterNum >100){
      enterNum = prompt("Your number is not between 1 and 100. Please try again", "")
  }
  else
    break;
}
document.write("Your number is ", enterNum)
于 2011-08-05T18:43:10.777 に答える
1
var valid = false;
var msg = "Please enter a number between 1 and 100";

while(!valid){
    var enterNum = prompt(msg, "");

    if (isNaN(enterNum)){
        msg = "You did not enter a valid number. Please try again";
    }
    else if (enterNum < 1 || enterNum >100){
        msg = "Your number is not between 1 and 100. Please try again";
    }
    else{
        valid = true;
        document.write("Your number is ", enterNum)
    }
}

スタイルにもよりますが、同様のことを行う方法は他にもたくさんあります。これは読みやすさのために行きました。validまた、変数を削除して、入力が正しい場合はwhile(true)単純にすることもできます。しばらくしてからになることもありますbreakdocument.write

于 2011-08-05T18:44:17.550 に答える
0

代わりにwhileループを使用してください

http://help.dottoro.com/ljqepqhd.php#dowhile

また

http://help.dottoro.com/ljqepqhd.php#while

于 2011-08-05T18:43:38.530 に答える
-1

私はjavascriptが嫌いなので、私の構文はおそらくオフですが、次のようなものです。

var isValid = false;
var message = "Please enter a number between 1 and 100";

while(isValid == false)
{
    var enterNum = prompt(message, "");

    if (isNaN(enterNum)){
        isValid = false;
        message = "You did not enter a valid number. Please try again";
    }
    else if (enterNum < 1 || enterNum >100){
        isValid = false;
        message = "Your number is not between 1 and 100. Please try again";
    }
    else{
        isValid = true;
        document.write("Your number is ", enterNum)
    }
}

do / whileループを使用すると、少しすっきりするかもしれません。

于 2011-08-05T18:49:28.277 に答える