我正在进行FreeCodeCamp课程,并且对于为什么我的代码不起作用感到困惑。这似乎是正确答案的一个混乱版本。下面是正确的答案,下面是我的。我只想了解。
这是正确答案:
var count = 0;
function cc(card) {
{
case 2:
case 3:
case 4:
case 5:
case 6:
return count++;
case 7:
case 8:
case 9:
return count;
case 10:
case 'J':
case 'Q':
case 'K':
case 'A':
return count--;
}
}
以下是我的回答:
var count = 0;
function cc(card) {
// Only change code below this line
switch (card) {
case 2:
return count + 1;
case 3:
return count + 1;
case 4:
return count + 1;
case 5:
return count + 1;
case 6:
return count + 1;
case 7:
return count + 0;
case 8:
return count + 0;
case 9:
return count + 0;
case 10:
return count - 1;
case 'J':
return count - 1;
case 'Q':
return count - 1;
case 'K':
return count - 1;
case 'A':
return count - 1;
}
if (count <= 0){
return count + " hold";
} else {
return count + " bet";
}
答案 0 :(得分:2)
两个不同;你得到了什么以及修改了什么
考虑
let x = 1;
x++; // 1
x; // 2
VS
let x = 1;
x + 1; // 2
x; // 1
值得注意的是,一元递增和递减运算符可以使用前缀,它在返回值之前执行修改,即
let x = 1;
++x; // 2
x; // 2
此外,请注意,if (count <= 0) ...
假设card
[2-9JQKA]|10
无法达到您的条件,因为之前的return
始终会被调用。
最后,由于我无法看到输入,我无法确定这一点,但看起来这段代码混合了 Number 和 String 。考虑选择一种类型可能是明智之举,因此不会出现意外行为。
根据A
所需的行为,我建议使用 Number 并映射{J: 11, Q: 12, K: 13, A: 14}
,或者在 String 中执行所有操作。
答案 1 :(得分:0)
var count = 0;
function cc(card) {
switch(card) {
case 2:
case 3:
case 4:
case 5:
case 6:
count += 1;
break;
case 7:
case 8:
case 9:
count += 0;
break;
case 10:
case 'J':
case 'Q':
case 'K':
case 'A':
count -= 1;
break;
}
return count + (count > 0 ? " Bet" : " Hold");
}