首页 > 试题广场 >

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

[单选题]
下面的方法,当输入为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;
        }
    return result;
}


  • 0
  • 2
  • 4
  • 10
没有break,发生case穿透现象,程序会继续向下执行,直到遇到break或者结束switch语句的大括号为止。
发表于 2019-09-23 18:02:36 回复(11)

case只是个入口,如果没有break;会从入口处将后面所有的case全部执行一次。

发表于 2019-08-26 08:21:07 回复(0)

当i=2时,执行程序

Case2:result=4;

Case3:result=4+6=10;

没有Break,就会顺序执行下去

发表于 2020-07-24 23:26:39 回复(3)
做错的反省一下
发表于 2019-08-22 10:22:14 回复(1)
没有break情况下,遇到匹配的case会一直运行下去
发表于 2019-08-21 15:53:14 回复(1)
反省一下!
发表于 2022-03-11 17:36:50 回复(0)
switch执行完一个后,一定要检查是否有break,否则会继续执行直到遇到break或执行完毕
发表于 2021-12-11 17:15:05 回复(0)

注意switch使用方法,防止穿透。如果执行语句完成后没有break,就会继续执行下去,直到语句执行完才结束。

switch语法:

switch(i){

case 1:

执行语句1;

break;

case 2:

执行语句2;

break;

…………

default:

break;

}


发表于 2020-02-22 14:48:22 回复(0)
当switch中所有的case语句中没有break时,就会从与switch括号内的值相同的case 值处开始执行,一直执行到最后一个case结束
本题在case 2 中计算的result值为4,继续向下执行,case 3 中的result值为10.
发表于 2019-11-02 18:10:45 回复(0)
case穿透
发表于 2023-10-23 18:48:48 回复(0)
swtich case语句中缺少break将继续执行下去。
发表于 2022-03-12 19:49:40 回复(0)
没有break情况下,遇到匹配的case会一直运行下去
发表于 2022-02-27 22:24:59 回复(0)
可恶,忘记没有break后续的穿透不需要满足条件了
发表于 2022-02-19 16:46:49 回复(0)
case只是个入口,如果没有break;会从入口处将后面所有的case全部执行一次,这个叫switch的穿透性
发表于 2020-05-04 22:28:32 回复(0)
case语句如果没有break继续向下执行
发表于 2019-12-03 17:04:46 回复(0)
case 里面没有break, 会继续往下执行,即使不满足case条件。
发表于 2022-09-13 19:21:49 回复(0)
case穿透OK?
发表于 2022-04-23 11:49:36 回复(0)
switch中放入变量的数值或字符与case后面的数值或字符比较:
如果符合就执行其中的语句,直到遇到break后离开switch程序块。
如果没有符合的数值或字符,则会执行default后的语句。
default不一定需要,如果没有默认要处理的动作,可以省去这个部分
发表于 2021-11-29 22:28:28 回复(0)
public static int getValue(int i) {
    int result = 0;
    switch (i) {
        case 1:
            result = result + i;
        case 2: //i=2,进入case2
            result = result + i * 2; //result = 4
        case 3: //因为没有break,会继续向下执行,result= 4+2*3 = 10
            result = result + i * 3;
        }
    return result;
}
发表于 2021-11-25 14:18:26 回复(0)
int result = 0; 我以为是i=0; ......
发表于 2021-11-23 09:34:36 回复(0)