if语句返回错误的答案

时间:2015-02-10 13:52:58

标签: javascript if-statement

我正在尝试让我的函数printResult(total3,total4);根据变量的总值向我的参数'Player'和'Dealer'显示'Safe'或'Busted'文本; total3total4

当我在console.log(ANSWER)中尝试预览ANSWER时,我得到了:
Player: busted, Dealer: safe
我试图为我的答案提供一个解决方案: Player: safe, Dealer: safe

使用两个if语句就像我在下面的代码中那样尝试获取var total3和total4的总值的正确方法吗?

var c4 =5;
var c5 =1;
var c6 =4;
var d4 =1;
var d5 =11;
var d6 =1;

var total3 = c4+c5+c6;
var total4 = d4+d5+d6;

var printResult = function(player,dealer){
    var game1 = "Player: "+total3 +", Dealer: "+total4;
    return game1;
}
if (total3 > total4){
    total3 = 'safe';
    total4 = 'busted';
}
if (total4 > total3) {
    total4 = 'safe';
    total3 = 'busted';
}


ANSWER = printResult(total3,total4);

3 个答案:

答案 0 :(得分:1)

您的语法不允许该结果。

如果第一个if循环的计算结果为true,那么第二个必须为false,反之亦然。

由于if循环中的代码将一个值设置为safe而另一个值设置为busted,因此情况总是如此。

我认为它是一个二十一点风格的游戏,并建议您分别评估变量,然后检查获胜者是谁。

// Declare static max value the indicates if safe or busted
var MAX = 21;
var c4 =5;
var c5 =1;
var c6 =4;
var d4 =1;
var d5 =11;
var d6 =1;

var total3 = c4+c5+c6;
var total4 = d4+d5+d6;
// Declares 3 variables to hold results for player, dealer and winner
var player = '';
var dealer = '';
var winner = '';

var printResult = function(player, dealer, winner){
    var game1 = "Player: "+ player +", Dealer: "+ dealer + ", " + winner + " has won.";
    return game1;
}

if (total3 > MAX)
{
    player = 'busted';
}
else
{
    player = 'safe';
}

if (total4 > MAX)
{
    dealer = 'busted';
}
else
{
    dealer = 'safe';
}

if (dealer == 'busted' || (total3 > total4 && player == 'safe'))
{
    winner = 'player';
}
else
{
    winner = 'dealer';
}

printResult(player, dealer, winner);

答案 1 :(得分:0)

它完全符合预期。 total4(13)高于total3(10)。 此外,您将变量播放器和经销商置于printResult函数中,并且您没有在函数范围内使用它们。相反,你使用全局变量total3&共4。

答案 2 :(得分:-2)

当您到达第二个if语句时,您已经更改了变量total3total4,因此您要比较的是'busted' > 'safe'

为要打印的字符串使用单独的变量,不要重复使用现有变量,并使用else if


另外,请检查您的printResult功能,它不会使用您传递给它的参数。