Mar*_* II -1 java switch-statement
我的Java教科书问我有关以下错误的信息:
switch (score)
{
case (score > 90):
grade = 'A';
break;
case (score > 80):
grade = 'B';
break;
default:
grade = 'C';
}
Run Code Online (Sandbox Code Playgroud)
我已经知道错误在哪里:
(score > 90); 那是if/else语句.但是,这让我疑惑:怎么可能一个switch语句有效地占到整数的范围是多少?
我能想到的最明显的例子如下,但我发现它相当蛮力:
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';
}
Run Code Online (Sandbox Code Playgroud)
如何在switch语句中表达这样的概念?
如果您利用分数随10分数的每次变化而变化的事实,并假设这score是一个整数数据类型,那么您可以除以10大多数情况:
switch (score / 10)
{
case 9:
case 10:
grade = 'A';
break;
case 8:
grade = 'B';
break;
default:
grade = 'C';
}
Run Code Online (Sandbox Code Playgroud)
如果没有这样的规则(如果"等级"桶大小不同且任意),那么你能做的最好的是if/else-if/else语句.
| 归档时间: |
|
| 查看次数: |
1185 次 |
| 最近记录: |