switch的小问题,在线等
public class SwitchTest {  
	  public static void main (String []args)  {
	    System.out.println (switchIt(4));  
	  }
	  public static int switchIt(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;  
	  }
	  }  
这段代码中,得到的结果为什么会是8呢,thanks
------解决方案-------------------- 因为case里面你没有加break;所以case 4、5、default都会执行!
------解决方案-------------------- 探讨  因为case里面你没有加break;所以case 4、5、default都会执行! 
------解决方案-------------------- 额  你没个case 后面不加break啊
------解决方案-------------------- 探讨  因为case里面你没有加break;所以case 4、5、default都会执行! 
------解决方案-------------------- 我也搞不明白了
x = 4, 不等于 5 ,不符合case5呀,为啥还执行 case 5 和后面的呀
------解决方案-------------------- +1  你debug一下就知道了
探讨  引用: 因为case里面你没有加break;所以case 4、5、default都会执行! +1 
------解决方案-------------------- 探讨  +1  你debug一下就知道了 引用: 引用: 因为case里面你没有加break;所以case 4、5、default都会执行! +1 
------解决方案-------------------- 自己多写几个试试就知道了,实在不行在每个case后输出一下,看看对应的值
------解决方案-------------------- break的原因
------解决方案-------------------- 执行完case 4的时候j的值是2,
执行完case 5的时候j的值是3,
执行完defaulat的时候j的值是4,
所以返回值是4+4=8
------解决方案-------------------- 没有break程序会顺序往下走,j被加了3次为4,4+4=8
------解决方案-------------------- 探讨  引用: 因为case里面你没有加break;所以case 4、5、default都会执行! +1 
------解决方案-------------------- 正常来说.switch格式应该是每个case结尾都有break作为结束,如果没有就会先匹配case后的数字,只要匹配到就会执行后面的全部代码。
------解决方案-------------------- 没有加break 后面不符合的也会按顺序执行下去。。。
------解决方案-------------------- 要break;不break后面的代码继续执行 到switch结束j的值是7 在加1就是8
------解决方案-------------------- 动手调试,学东西就要多调试代码
------解决方案-------------------- 设置个断点,点debug按钮,一步一步调试
------解决方案-------------------- 没加break的原因
------解决方案-------------------- 探讨  因为case里面你没有加break;所以case 4、5、default都会执行! 
------解决方案-------------------- break;跳出来就不加了
多做switch练习