一道Java题,下列语句序列执行后,k 的值是.下列语句序列执行后,k 的值是.int i=10,j=18,k=30;switch( j - i ){ case 8 :k++; case 9 :k+=2;case 10:k+=3; default :k/=j;}A) 31 B) 32 C) 2 D) 33

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/16 14:42:42
一道Java题,下列语句序列执行后,k 的值是.下列语句序列执行后,k 的值是.int i=10,j=18,k=30;switch( j - i ){ case 8 :k++; case 9 :k+=2;case 10:k+=3; default :k/=j;}A) 31 B) 32 C) 2 D) 33

一道Java题,下列语句序列执行后,k 的值是.下列语句序列执行后,k 的值是.int i=10,j=18,k=30;switch( j - i ){ case 8 :k++; case 9 :k+=2;case 10:k+=3; default :k/=j;}A) 31 B) 32 C) 2 D) 33
一道Java题,下列语句序列执行后,k 的值是.
下列语句序列执行后,k 的值是.
int i=10,j=18,k=30;
switch( j - i )
{ case 8 :k++;
case 9 :k+=2;
case 10:k+=3;
default :k/=j;
}
A) 31 B) 32 C) 2 D) 33

一道Java题,下列语句序列执行后,k 的值是.下列语句序列执行后,k 的值是.int i=10,j=18,k=30;switch( j - i ){ case 8 :k++; case 9 :k+=2;case 10:k+=3; default :k/=j;}A) 31 B) 32 C) 2 D) 33
选C
每个case语句后要加break;不然会从满足条件的那个case开始,一直运行到default.
因为j-i=8满足了第一个case,而每个case后面都没有break;
所以先执行k++ ,这时k=31
然后执行K+=2,这时k=33
然后执行K+=3 这时k=36
最后执行k/j 即36/18 结果为2 ,
如果像下面这样每个case后都有break;那么就是楼上的答案了.
int i = 10,j = 18,k = 30;
switch (j - i) {
case 8:
k++;break;
case 9:
k += 2;break;
case 10:
k += 3;break;
default:
k /= j;
}