**for(int i=0; i<num.length; i++){
switch(num[i]/10){
case 10:
case 9:
aCount++;
break;
case 8:
bCount++;
break;
case 7:
cCount++;
break;
case 6:
dCount++;
break;
default: fCount++;
}**
我想在一行中使用多个三元运算符而不是switch语句来缩短此代码。有可能吗?
不容易,不。首先,您尚未指定language,,它may在C ++中可以通过使用引用或在C中通过使用指针来实现。但是,即使is可能,您也很可能最终得到真正的ugly代码。
如果您只是想提高可读性(我认为这是缩短代码的常见原因),可以这样做[[无更改代码的结构,例如(假设这些是标记0..100
和等级a..f
):
for (int i = 0; i < num.length; i++) {
// Map <60 to f, 6x to d, 7x to c, 8x to b, 90+ to a.
switch (num[i] / 10) {
case 10: case 9: aCount++; break;
case 8: bCount++; break;
case 7: cCount++; break;
case 6: dCount++; break;
default: fCount++;
}
}