# Using IF statement rather than SWITCH statement

Tell us what’s happening:
Describe your issue in detail here.
Hey, I’m struggling with this problem. I have seen the `switch` statement solution and can understand most of it. however when I try solving it with an `if` statement, i get error. see what I’m doing wrong. Thanks.

``````  **Your code so far**
``````
``````
var count = 0;

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

if(card >= 2 && card <= 6){
count++;
return count + ' ' + 'Bet';
}else if(card >=7 && card <= 9){
return count + ' '+ 'Hold';
}else{
count--;
return  count +' '+ 'Hold';

}
// Only change code above this line
}
cc(2); cc(3); cc(7); cc('K'); cc('A');
``````
``````  **Your browser information:**
``````

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

Challenge: Counting Cards

https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/counting-cardsemphasized text

I am getting the error:

ReferenceError: count is not defined

That is because count is undefined. You need to declare and initialize it.

Also, I would be a little worried about something like `card >= 2` - what does that mean if the card is a string? I don’t know, I can’t test it right now, but that seems odd to me to be comparing it this way with no accounting for the string values.

Additionally, there’s also some logical error. Imagine you have the sequence

``````cc(2); cc(2); cc(2); cc(2); cc('A')
``````

After the first four function calls, the count should be `4`. Then you get an `A`, which would reduce the count to `3`, and the function should return `3 Bet`, but yours returns `3 Hold`. You’d have to check the value of `count` before you decide whether you want to return `Bet` or `Hold`.

Yes, doing this with `if/else` is definitely doable. The code is going to be messy.

I think that issue of the comparing numbers and strings is a big problem. One way to handle it would be to set and internal variable for the card, and if it is a string, assign it a value of 10 since they all count the same.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.