java里switch简单问题

下列代码的执行结果是?(选择1项)
int i=1, j=0;
switch(i) {
case 2:
j+=6;
case 4:
j+=1;
default:
j +=2;
case 0:
j +=4;
}
System.out.println("j="+j);
程序能运行,输出结果:j=0
程序能运行,输出结果:j=2
程序能运行,输出结果:j=4
程序能运行,输出结果:j=6

答案选什么

第1个回答  2013-02-19
程序能运行,输出结果:j=6

default是默认的,总可以进,执行j +=2;
因为没有break,所以会接着执行j +=4;

最后得到6本回答被提问者采纳
第2个回答  2013-02-19
程序能运行,输出结果:j=6

switch(i) { **
case 2: **i==1,不符合,进入下一case
j+=6;
case 4: **i==1,不符合,进入下default
j+=1;
default: **进入 执行,j +=2; 结果j=2(这时应该加一句break,否则以后的所有语句都会被执行)
j +=2;
case 0: **执行 j+=4
j +=4;
}
第3个回答  2013-02-19
程序能运行,输出结果:j=6;进入switch之后由于i=1则进入default这个判断,此时j=2,由于default中缺少break语句,程序会继续往下走,进入case 0:的判断再对j进行加4!最后走出switch,得到的结果为6.其实你自己设置一个断点就可以很清楚的了解程序走的每一个步骤!
第4个回答  2013-02-19
程序能运行,输出结果:j=6追问

为什么啊,解释下

追答

i=1没有匹配,然后执行default,因而j=2,此时并没有break,所以会接着执行下面的语句,此时不在进行case的匹配(只匹配一次),此时j=2+4=6,因而输出6

第5个回答  2013-02-19
什么问题,没有说的清楚。不好回答。
相似回答