Java中switch语句问题?请看问题补充;答案为什么不是7;为什么不是6;

publicclassSwich{publicstaticvoidmain(String[]args){System.out.println("value="+switc... public class Swich {
public static void main(String[]args){

System.out.println("value="+switchlt(4));
}
public static int switchlt(int x){

int j=1;
switch(x){
case 1:j++;
case 2:j++;
case 3:j++;
case 4:j++;
case 5:j++;
default:j++ ;

}
return j+x;
}}
展开
 我来答
JSON在线解析
2017-04-26 · 专注JSON在线解析工具,JavaDemo分享
JSON在线解析
采纳数:644 获赞数:1154

向TA提问 私信TA
展开全部

因为你语法写的有问题,它从4开始进去j++=2,到5的时候又进去了j++=3,然后再进default里,又j++=4,然后x是4,j也是4,这不是8吗。

switch不是这么用的,你这错误叫穿透,你百度穿透就明白了,我给您改了一下。

public static void main(String[] args) {

    System.out.println("value=" + switchlt(4));
}

public static int switchlt(int x) {

    int j = 1;
    switch (x) {
    case 1:
        j++;
        break;
    case 2:
        j++;
        break;
    case 3:
        j++;
        break;
    case 4:
        j++;
        break;
    case 5:
        j++;
        break;
    default:
        j++;
    }
    return j + x;
}

结果是6,这样语法是正确的!

匿名用户
2017-04-26
展开全部
case语句后没有break,default还是会执行j++ 执行了两次 j=3+x 所以等于7
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式