普通网友 2017-08-16 11:28 采纳率: 100%
浏览 6354
已采纳

Switch条件不能放置long类型?

Switch(条件){}
这个条件位置为什么不能放long类型的语句?

  • 写回答

11条回答 默认 最新

  • 战在春秋 2017-08-16 21:49
    关注

    简单的回答是因为语法的规定。
    在实际编程中,极少有如此多的分支,以致需要使用Long类型。

    这样的语法规定是语言设计者的折衷考虑,并不一定特别合理,语言规范也在不停演变。
    但截止目前的版本,Java的Swithch分支仍然不支持Long,在这种情况下,可以采取一些办法:

    1 转为int类型,范例如下:

          final long value = System.currentTimeMillis() % 5;
          switch ( (new Long(value)).intValue() ) //注意这行
          {
             case 1 : System.err.println("One");
                      break;
             case 2 : System.err.println("Two");
                      break;
    

    2 放弃switch,改用 if/else 的写法。
    3 放弃switch,改用 Map。

    补充:语言的底层实现细节有时还真不完全清楚,Java新版本中Switch添加了对String的支持,如果要支持Long,也没问题。
    谁知道他们是怎么想的^_^,作为语言的使用者,遵守规则即可。

    如果对您有帮助,请采纳答案好吗,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制