Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数值误差的选择_Javascript_Selection - Fatal编程技术网

Javascript 数值误差的选择

Javascript 数值误差的选择,javascript,selection,Javascript,Selection,我试图确定总数等于多少,然后对每个选择做一项工作。我的第一个选择是如果总数是2、3或12,那么你输了。如果是7或11,你输了。其他任何东西都可以证明这一点。首先,我的代码看起来像这样,但每一次,它都会转到其他地方。通过使用此函数将2个随机数相加计算总数: Math.floor(Math.random()*6+1); 然后我把它改成这样: function game() { if(total==2 , 3 , 12) { alert("You lose. Pl

我试图确定总数等于多少,然后对每个选择做一项工作。我的第一个选择是如果总数是2、3或12,那么你输了。如果是7或11,你输了。其他任何东西都可以证明这一点。首先,我的代码看起来像这样,但每一次,它都会转到其他地方。通过使用此函数将2个随机数相加计算总数:

   Math.floor(Math.random()*6+1);
然后我把它改成这样:

 function game()

 {
if(total==2 , 3 , 12)
    {
        alert("You lose. Please start a New Round");
        return;
    }
if(total==7 , 11)
    {
        var temp= 2 * bet;
        alert("You win $" + temp);
        return;
    }   
else 
    {
        alert("Point Established. Roll again.");
        var point=total;
        setTimeout(rolldice2,3000);
    }
 }
但它只是说你无论如何都会输。然后我终于拿出了回程票。它执行前2项,而不是其他项。我希望能够选择一个-取决于变量total等于什么-然后执行其作业,然后离开函数

在您的情况下,总变量未定义

将total传递给函数并执行switch语句

 function game(total)
 {
    switch(total)
    {
        case 2 : 
        case 3 :
        case 12 : {
                    alert("You lose. Please start a New Round");
                    return;
                  }
        case 7 : 
        case 11 :
                 {
                    var temp= 2 * bet;
                    alert("You win $" + temp);
                    return;
                 }   
        default : 
                {
                    alert("Point Established. Roll again.");
                    var point=total;
                    setTimeout(rolldice2,3000);
                }
    }
 }

你在哪里计算总数?尽管我很欣赏这些废话,但你提供的代码并没有透露足够的信息,我们无法帮助计算之前的总数。我没有把它包括在内,因为它被计算得很好。我知道这一点,因为它显示总数,然后执行上述功能。这就是问题所在。通过将两个随机数相加算出总数Math.floorMath.random*6+1@JamesWhitney你想让我包含整个Javascript文件吗?在这一点上,只包含整个JS文件可能是最简单的,是的。事实上,你不明白其他人所说的“显示总数”是什么意思——这将是一个巨大的下降趋势,如果你不解决你的问题,我怀疑它最终会被关闭。这是一个比OP提供的代码更容易阅读的更好的结构,但它不会从根本上改变代码的处理方式,我不同意,在操作代码中,total是未定义的。在我的例子中,total被传递到函数并被处理。他说,但它只是说,不管发生什么,你都会输。表示每次总是输入2、3、12号案例。这意味着缺少代码来获取OP未与我们共享的总计。您的解决方案确实有助于解决OP忘记7和11 be else if和just if这一事实,这也无法正确工作。总计不是未定义的。它是在上一个函数中定义的。
 function game(total)
 {
    switch(total)
    {
        case 2 : 
        case 3 :
        case 12 : {
                    alert("You lose. Please start a New Round");
                    return;
                  }
        case 7 : 
        case 11 :
                 {
                    var temp= 2 * bet;
                    alert("You win $" + temp);
                    return;
                 }   
        default : 
                {
                    alert("Point Established. Roll again.");
                    var point=total;
                    setTimeout(rolldice2,3000);
                }
    }
 }