-1

我正在使用网站提示创建一个简单的问题,但我遇到了问题。

我收到此脚本的两个错误,首先是“问题未定义”,

其次,在我的第一个提示行有什么想法吗?

<script>
var a = Math.floor((Math.random()*10)+1);
var b = Math.floor((Math.random()*10)+1);
var c = Math.floor((Math.random()*10)+1);

var wrong = 0;

function question()
{   
    for(x=1; x>10; x++)
    {
        prompt("Does" b"+"c " = ");
        if(prompt.input == b + c)
        {
            question();
        }else{
            wrong++;
        }

        if(x==10)
        {
            alert("well you were wrong " + wrong" times");
        }
    }
}
</script>
4

5 回答 5

2

+在论点中遗漏了所有内容

prompt("Does" b"+"c " = ");

您必须使用+来连接字符串:

prompt("Does " + b + "+" + c + " = ");

同样+缺少:

alert("well you were wrong " + wrong" times");

利用:

alert("well you were wrong " + wrong + " times");

此外,你是question从自身内部调用的。这不会导致语法错误,但在您的情况下几乎不需要。


而且,prompt.input也不行。它总是未定义的。使用提示调用的返回值:

var response = prompt( ... );
if(response == b+c){
  ...

此外,您只需初始化一次随机变量。也许您希望在每个循环中都有一个新的对(除非递归是为此而设计的)。感谢@Asad 的注意。

于 2012-11-26T10:13:09.690 回答
1

您似乎在几个地方跳过了连接运算符。正确的版本如下所示:

prompt("Does " + b + "+" + c + " = ");

再一次,这里:

alert("well you were wrong " + wrong + " times");

此外:

  1. 您的随机数需要在循环开始时再次随机化
  2. question不需要递归(您已经在使用循环)
  3. 用户错误次数的警报需要在循环之外发生

这是一个更正的版本:

var a = Math.floor((Math.random()*10)+1);
var b = Math.floor((Math.random()*10)+1);
var c = Math.floor((Math.random()*10)+1);

var wrong = 0;

function question()
{   
    for(x=1; x>10; x++)
    {
        b = Math.floor((Math.random()*10)+1);
        c = Math.floor((Math.random()*10)+1);
        prompt("Does " + b + "+" + c + " = ");
        if(prompt.input != b + c)
            wrong++;        
    }

    alert("well you were wrong " + wrong + " times");
}
于 2012-11-26T10:14:16.990 回答
0
var f1 = alert("well you were wrong " + wrong + " times");

alert不返回值。

缺少字符串连接:

"Does" b"+"c " = "
"Does"+ b + "+" + c + " = "

(我建议检查你所有的字符串)

此外,通过其中的循环递归,您将生成一个无限循环:(稍微简化)

function question(){

    for(x=1; x>10; x++){
        question();
    }
}

你打了question();10 次电话,每次你打电话question();

于 2012-11-26T10:10:57.467 回答
0

首先,字符串连接存在错误。应该像

prompt("Does" +b+c+" = ");
alert("well you were wrong " + wrong+" times");

其次,您经常使用函数question();而没有升级值,这会创建一个循环

于 2012-11-26T10:15:28.130 回答
0

question is not defined意味着您的函数question在浏览器实际读取之前被调用。

确保仅在 window.ready 事件触发后才执行主 JS 代码。

window.onready = function(){
    //Here your starting code goes
}
于 2012-11-26T10:12:44.973 回答