为啥是这个运行结果?

图片说明

为什么运行结果是10啊?

switch-case具有顺延性,就是说在case后没有break的情况下,i一旦匹配成功,会执行之后的所有代码。
本题就是匹配到case2后顺延执行了case3的代码 最终结果就是10。

下面给出解释。

public static int getValue(int i) {
        int result = 0;
        // 注意switch的case中必须要break;
        // 不然会顺序执行,下面的代码就会执行完case2然后执行case3
        switch (i) {
            case 1:
                result=result+i;
            case 2:
                // result=0+2*2
                // result=4
                result=result+i*2;
            case 3:
                // 接着执行里面的代码
                // result=4+2*3
                // result=10
                result=result+i*3;
        }
        return result;
    }

没有break的话case就会一直执行下去

没太明白为什么用类实现这个功能