# Counting Cards Not returning the right answer

I’m trying to finish this challenge without using a switch statement.
The console.log at the end does not seem to return anything at the moment, so guessing where the code is off is beyond me…

Does anyone see what is wrong with the function so far?

Your code so far

``````
var count = 0;

function cc(card) {
// Only change code below this line
if (card == (2 || 3 || 4 || 5 || 6)) {
count =+ 1;
if count > 0 {
return count + " Bet";
} else {
return count + " Hold";
}
}

else if (card == (7 || 8 || 9)) {
count =+ 0;
if count > 0 {
return count + " Bet";
} else {
return count + " Hold";
}

else if (card == (10 || 'J'|| 'Q' || 'K' || 'A')) {
count =- 1;
if count > 0 {
return String (count) + " Bet";
} else {
return String (count) + " Hold";
}
}
var outPut = cc;
console.log(outPut);
// 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');
``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36`.

You have to make each OR number comparison (i.e. 2, 3, 4, 5, 6) to card. For example, if I want to check if card is equal to 20 OR 30, I would have to write:

``````if (card === 20 || card === 30) {
``````

Also, there is no such operator as =+ or =-. Review previous lessons concerning the compound assignment operators to see the correct operator to use.

Finally, you have major duplicate code. The following is repeated 3 times:

``````   if count > 0 {
return count + " Bet";
} else {
return count + " Hold";
}
``````

You only need to write this code a single time after you have properly increased/decreased the value of count.

One last question for you to think about. If card is 7, 8 or 9, do you really need to do anything?

1 Like

Few things that i noticed are, some of your if statements don’t have the condition wrapped in parentheses. Also, the assignment of var outPut is missing parentheses.

1 Like

Thank you very much for the quick replies!!

I edited out the major duplicate code, looks better now indeed.

The output is still not what it should be, is there something else I’m missing now:

``````var count = 0;

function cc(card) {
// Only change code below this line
if (card == 2 || card == 3 || card == 4 || card == 5 || card == 6) {
count= count + 1;
}

else if (card == 10 || card == 'J'|| card == 'Q' || card == 'K' || card == 'A') {
count = count - 1;
}

if count > 0 {
return (count) + " Bet";
} else {
return (count) + " Hold";
}

var outPut = cc;
console.log("outPut");
``````

ohhhhhhh. forgot one more set of parentheses, around the last count > 0 bit.

Thank you so much for the help!! Appreciate it. All fixed now.

I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make easier to read.

Note: Backticks are not single quotes.

See this post to find the backtick on your keyboard. The “preformatted text” tool in the editor (`</>`) will also add backticks around text. FYI" `count = count - 1;` can be written as `count--;` and `count = count + 1;` can be written as `count++`;

Also, the following:

``````   if count > 0 {
return (count) + " Bet";
} else {
return (count) + " Hold";
}
``````

could be written without the else, because if the first turn does not execute, the 2nd one will.

``````   if count > 0 {
return (count) + " Bet";
}
return (count) + " Hold";
``````