因为你语法写的有问题,它从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,这样语法是正确的!
case语句后没有break,default还是会执行j++ 执行了两次 j=3+x 所以等于7