使用Java开关输出奇怪的输出

Ale*_*ang 0 java switch-statement

请阅读以下功能:

public static int getValue(int i) {
    int result = 0;
    switch (i) {
        case 1:
            result = result + i;
        case 2:
            result = result + i * 2;
        case 3:
            result = result + i * 3;
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

何时i = 2,输出是什么?我认为它是4,但答案是10执行.为什么会这样?为什么案例3也会执行?i是2,而不是3.我正在考虑它,但我仍然不知道为什么会这样.

hex*_*ide 11

break;每种情况都需要切换语句,以避免执行后面的case语句.