首页 > 试题广场 >

下面的方法,当输入为2的时候返回值是多少?publicsta

[单选题]
下面的方法,当输入为2的时候返回值是多少?
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;
        default:
            result = result + i * 4;
    }
    return result;
}

  • 0
  • 4
  • 12
  • 18
不写break会穿透到下一个break,即运行case 2及之后
发表于 2020-12-08 19:09:38 回复(2)

switch…case的三个规则:

(1)既无成功匹配,又无default字句,那么swtich语句块什么也不做;
(2)无成功匹配,但有default,那么swtich语句块做default语句块的事;

(3)有成功匹配,没有break,那么成功匹配后,一直执行,直到遇到break。
因此,执行顺序:case2->case3->default    result:4->10->18
也就是因为没有break会一直执行到default才结束。
发表于 2020-12-28 09:56:45 回复(0)
没有break会往下继续走
发表于 2023-09-05 15:02:49 回复(0)
<p>4+6+8</p>
发表于 2020-12-17 06:45:15 回复(0)