为什么运行结果是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就会一直执行下去
没太明白为什么用类实现这个功能