Matthias Verhoeven - 2 months ago 5x
C# Question

# Switch: Multiple values in one case?

I have the following piece of code, but yet when I enter "12" I still get "You an old person". Isn't 9 - 15 the numbers 9 UNTIL 15? How else do I handle multiple values with one case?

``````  int age = Convert.ToInt32(txtBoxAge.Text);

switch (age)

{
case 1 - 8:
MessageBox.Show("You are only " + age + " years old\n You must be kidding right.\nPlease fill in your *real* age.");
break;
case 9 - 15:
MessageBox.Show("You are only " + age + " years old\n That's too young!");
break;
case 16-100:
MessageBox.Show("You are " + age + " years old\n Perfect.");
break;
default:
MessageBox.Show("You an old person.");
break;
}
``````

1 - 8 = -7

9 - 15 = -6

16 - 100 = -84

You have:

``````case -7:
...
break;
case -6:
...
break;
case -84:
...
break;
``````

Either use:

``````case 1:
case 2:
case 3:
``````

etc, or (perhaps more readable) use:

``````if(age >= 1 && age <= 8) {
...
} else if (age >= 9 && age <= 15) {
...
} else if (age >= 16 && age <= 100) {
...
} else {
...
}
``````

etc

Source (Stackoverflow)