这道java题把我弄疯了,求大神帮我分析,为什么答案是D???
publicclassTest{publicstaticvoidmain(String[]args){intx=6,y=10,k=5;switch((int)(x%y))...
public class Test {
public static void main(String[] args) {
int x=6, y=10, k=5;
switch((int)( x % y) ) //(=6) (long类型不行)
{
case 0: k=x*y;
case 6: k=x/y;
case 12: k=x-y;
default: k=x*y-x; // (default 位置可以改变)
}
System.out.println(k);
}
}
A:60
B:5
C:0
D:54 展开
public static void main(String[] args) {
int x=6, y=10, k=5;
switch((int)( x % y) ) //(=6) (long类型不行)
{
case 0: k=x*y;
case 6: k=x/y;
case 12: k=x-y;
default: k=x*y-x; // (default 位置可以改变)
}
System.out.println(k);
}
}
A:60
B:5
C:0
D:54 展开
4个回答
展开全部
小哥,这个题有点小错误啊!首先 switch 转换语句中的 case 语句后面没有 break 跳转语句,这样当执行一个case情况后并没有停止,而是继续执行该case后面的case语句。
正确的语句是:case 0: k=x*y;
break;
这样就正确了!!!
正确的语句是:case 0: k=x*y;
break;
这样就正确了!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有个地方你没有注意 你要看case后面没有跟break,所以case 6以后的case 都要执行哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有break,最终执行default的 k=x*y-x 即 k = 6 * 10 - 6, 结果k = 54
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询