站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题一个switch问题,大家看看

一个switch问题,大家看看

摘要: 一个switch问题,大家看看


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);

结果为什么是6呢?不解


没有break的case分支不会直接退出switch,而是继续执行下面的代码


switch语句每个case里都必须要有break;来退出switch语句
switch(i) {
case 2:{
j+=6;
break;
}
case 4:{
j+=1;
break;
}
default:{
j +=2;
break;
}
case 0:{
j +=4;
break;
}
}


i=1
没有相应的case分支,所以执行default: j=0+2=2
default分支没有break,继续执行下面的代码:j=2+4=6!!!!!


楼上正解!


晕 缺少break;当然往下运行了 汗


晕 缺少break;当然往下运行了 汗



↑返回目录
前一篇: 为什么我运行InetAddress.getLocalHost()会出异常?
后一篇: 内部类的一道选择题