2014-08-28 245 views
0

正如标题所示。我该怎么做呢?用Javascript计算分数

林肯定会使用纯JS,我真的很新鲜(像真的是真的新)。所以请原谅我的noob问题。 :)

我的代码如下所示:

if (questionArr[questionId].choices[k].tf === true) { 
    score = score + questionArr[questionId].choices[k].points; //add points if answer is correct 
} else { 
    if ((score - questionArr[questionId].choices[k].points) > 0) { 
     score = score - questionArr[questionId].choices[k].points; //subtract points if answer is wrong 
    } else { 
     score = 0; 
    } 
} 

我的问题是这样的:比方说这个问题有4个答案,第一个给5分,第二届一个是错误的,减去6分,3次一个错误减去3分,第四个错误给出10分。

所以我想在最后6分结束了,这是因为:

+5 -6 -3 = -4 
-4 +10 = 6 

不幸看来,当我运行它,我的代码是多少IM当它到达0猜测的任何切割。当分数低于0时,这会阻止我计算分数。最后,如果总分低于0,我希望它自动设置为0,这就是我在最后尝试处理的结果。

我希望有人可以帮助我,因为我不知道如何解决这个问题。

+0

我想你需要添加更多的代码,什么是'k'?或许计算得分而不涉及负数,然后在循环之后(我在这里猜测,你用'k'遍历所有问题?)检查数字是否定的。 – icke 2014-08-28 10:58:31

回答

0

看起来你只需要将if语句移出代码(可能)循环遍历所有问题。即:

//guessing start of for loop that sets questionId and k 
if (questionArr[questionId].choices[k].tf === true) { 
    score = score + questionArr[questionId].choices[k].points; //add points if answer is correct 
} else { 
    score = score - questionArr[questionId].choices[k].points; //subtract points if answer is wrong 
} 
//end of loop 
if (score < 0) score = 0;