A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 漫步人 中级黑马   /  2013-10-18 02:40  /  2201 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 漫步人 于 2013-10-20 23:26 编辑

switch语句能否作用在byte上,能否作用在long上,以及Sting上?

评分

参与人数 1技术分 +1 收起 理由
曹秀云 + 1 神马都是浮云

查看全部评分

11 个回复

正序浏览
  1. /*
  2. switch可以用于int,和String,但是当接收一个long类型的数据时,
  3. switch()的括号内要转成int类型(向下转型):不然,“可能丢失精度”;
  4. 如代码中我有注释的地方:
  5. */

  6. class SwitchDemo
  7. {
  8.         public static void main(String[] args)
  9.         {
  10.                 byte x=1;
  11.                 long y=1;
  12.                 String z="java";
  13.         byteDemo(x);
  14.         longDemo(y);
  15.         StringDemo(z);
  16.         }
  17.         public static void byteDemo(byte x)
  18.         {
  19.         switch(x)
  20.                 {
  21.         case 1:System.out.println("hello byte");
  22.                 }
  23.         }
  24.        
  25.         public static void longDemo(long x)
  26.         {
  27.         switch((int)x)//这里要强转成int否则可能会丢失精度
  28.                 {
  29.         case 1:System.out.println("hello long");
  30.                 }
  31.         }
  32.        
  33.         public static void StringDemo(String x)
  34.         {
  35.         switch(x)
  36.                 {
  37.         case "java":System.out.println("hello String");
  38.                 }
  39.         }
  40. }
复制代码

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
曹秀云 + 1 很给力!
漫步人 + 2

查看全部评分

回复 使用道具 举报 1 0
问题已近解决了!怎么设置成已解决啊!
回复 使用道具 举报
好的,加油中!
回复 使用道具 举报
好的,加油中!
回复 使用道具 举报
好的,加油中!
回复 使用道具 举报
好的,加油中!
回复 使用道具 举报

已解决

本帖最后由 漫步人 于 2013-10-20 23:18 编辑

好的,加油中!
回复 使用道具 举报
switch 必须是short,byte ,int ,char  中的一种,其它的不行
回复 使用道具 举报
switch语句判定的变量必须是byte,short,int,char类型中的任意一种,
jdk6.0加入对枚举类型的兼容,jdk7.0加入对字符串类型的兼容。

评分

参与人数 1技术分 +1 收起 理由
曹秀云 + 1 很给力!

查看全部评分

回复 使用道具 举报
没试过,按理说应该行,switch可以看成if语句的组合
回复 使用道具 举报
本帖最后由 未知数|X| 于 2013-10-18 07:54 编辑

byte是可以的 long不行其实在jdk7.o到是提供了对String的支持,其实你只要稍微试试你就会发现,哇塞 也不过如此
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马