我想使用三进制运算符在单行中转换此代码转换部分

问题描述 投票:0回答:1
    **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语句来缩短此代码。有可能吗?

switch-statement conditional-statements shortcode conditional-operator short
1个回答
0
投票

不容易,不。首先,您尚未指定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++; } }
© www.soinside.com 2019 - 2024. All rights reserved.