Freecodecamp-计数卡

时间:2018-07-13 09:29:35

标签: javascript

我知道可以通过多种方法来完成此挑战,并且我可以通过一种不同的方法来满足要求,但是我正努力了解我的代码有什么问题。

挑战-https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/counting-cards/

任何帮助将不胜感激。

    var count = 0;

    function cc(card) {
      // Only change code below this line

      if (card < 7){
        count++;
      } else if (card < 10){
        count+=0;
      } else (count--;)

      if (count > 0){
        return count + " Bet";
      } else (
        return count + " Hold";
      )
      // Only change code above this line
    }

    // Add/remove calls to test your function.
    // Note: Only the last will display
    cc(2); cc(3); cc(7); cc('K'); cc('A');

2 个答案:

答案 0 :(得分:1)

首先,当您尝试执行代码时,应该看到一个语法错误,指向(count--;)中的分号。这样做的原因是:else需要一个语句,如果看到一个括号,则表示该语句是一个表达式,并且在表达式中,分号不能出现在括号内(这是相当简化的)。编写它的正确方法是不带括号(通常不赞成使用else count--;)或带花括号:else { count--; }

修复该错误后,还会出现另一种错误,因为您似乎系统地在else之后使用括号而不是花括号。

之后,您的代码就可以工作了。 card的可疑比较可能是字母或数字与整数的比较,但是它恰好可以按您希望的方式工作(因为'K''Q'和{{1 }}的评估结果大于'J'7。)最好不要依赖这种魔术,并在字母和值之间建立一个转换表,或者至少在以下情况下:重新依赖魔术,发表评论,以使读者知道您知道魔术。另外,10是一个空语句,它什么也不做,可能被忽略了。这会给您留下一个空的count+=0,但这不是错误。但是,如果您使用else if,它可能会更具可读性。

答案 1 :(得分:0)

愚蠢的错误。

答案如下:

viewport