我在网上看到"swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。" 
long型为什么不行呢,long 不也是整型吗?

解决方案 »

  1.   

    整型是指int,long不是整型,而是长整型。JAVA规定,switch的条件不能是long,规定就是规定,需要理由吗?
      

  2.   

    int的长度是32bit,而long却是64bit。当然有差别了。:)
      

  3.   

    还有一个方法
    用位操作将long转变为两个int
    再通过switch判断,呵呵
      

  4.   

    switch的选择因子必须是int或char那样的整数值!
      

  5.   

    看到core java 上建议大家不要用switch case
    要用就用if else
      

  6.   

    是不行的 switch只能匹配int及其以下类型
      

  7.   

    因该说switch 跟的是int的兼容型,也就是int 或比int 小的类型!!
      

  8.   

    我还没见过用在开发中用switch的呢
    用if就行了,那个东西有局限性