题目
下面的方法,当输入为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;}A0 B2 C4 D10.
下面的方法,当输入为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;
}
A0 B2 C4 D10
.题目解答
答案
答案:D
.
解析
考查要点:本题主要考查对Java中switch语句的掌握,特别是case语句的执行流程以及缺少break时的“fall-through”现象。
解题核心思路:
当switch语句中某个case的条件满足时,程序会执行该case对应的代码块,若没有break语句,会继续执行后续所有case的代码块,直到遇到break或switch结束。因此,需要逐条分析所有执行的case对变量的影响。
破题关键点:
- 输入
i=2时,case 2和case 3都会被依次执行。 - 正确计算两次赋值操作对
result的叠加效果。
当输入i=2时,程序执行过程如下:
- 初始化:
result = 0。 - 进入
switch语句:case 1的条件不成立(2 != 1),跳过。case 2的条件成立(2 == 2),执行:result = result + i * 2; // 0 + 2 * 2 = 4此时
result = 4。- 因缺少
break,继续执行case 3:result = result + i * 3; // 4 + 2 * 3 = 10此时
result = 10。
- 返回结果:最终
result的值为10,对应选项D。