# Counting Cards Switch Function

Tell us what’s happening:
I’m not sure why this isn’t working. If I replace the final switch statement with the below it works just fine.

``````if (count > 0){
return count + bet;
}
else {
return count + hold;
}
``````

But doesn’t my switch statement do fundamentally the same thing? What am I missing?

``````  **Your code so far**
``````
``````
let count = 0;
let hold = " Hold"
let bet = " Bet"

function cc(card) {
// Only change code below this line
switch(card) {
case 2:
case 3:
case 4:
case 5:
case 6:
count += 1;
break;
case 7:
case 8:
case 9:
count += 0;
break;
default:
count -= 1;
}
switch(count){
case count > 0:
return count + bet;
break;
default:
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/101.0.4951.54 Safari/537.36`

Challenge: Counting Cards

A switch is not a replacement for `if-else`. A switch checks if a value matches one of a series of values. It doesn’t check for conditions like that.

``````// Good
switch (someValue) {
case option1:
// do this
break;
case option2:
// do that
break;
}

// The same as
if (someValue === option1) {
// do this
} else if (someValue === option2) {
// do that
}
``````

You’re trying to do

``````// Some comparison
if (someValue > option1) {
// do this
} else {
// do that
}

switch (someValue) {
case someValue > option1:
// do this
break;
default:
// do that
break;
}

// But that actually means
if (someValue === (someValue > option1)) {
// do this
} else {
// do that
}
``````

Oh I see, so a case is only checking to make sure something is exactly the expected input. It can’t compare greater or less than?

1 Like

You got it. A switch statement can be thought of as “is this value one of these options”. Super handy but very specific tool.

1 Like

That makes sense.

Thank you!

1 Like

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