My Java textbook asked me about the following error:
switch (score)
{
case (score > 90):
grade = 'A';
break;
case (score > 80):
grade = 'B';
break;
default:
grade = 'C';
}
I already know where the error is:
- Switch statements aren't built for comparisons like
(score > 90)
; that's for if/else statements.
But this got me wondering: How could a switch statement efficiently account for ranges of integers?
The most obvious example I could think of is below, but I find it rather brute-force:
switch (score)
{
case 90: case 91: case 92: case 94: case 95:
case 96: case 97: case 98: case 99: case 100:
grade = 'A';
break;
case 80: case 81: case 82: case 84: case 85:
case 86: case 87: case 88: case 89:
grade = 'B';
break;
default:
grade = 'C';
}
How else could a concept like this be expressed in a switch statement?