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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾永长 中级黑马   /  2013-6-27 13:16  /  2605 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

switch语句中表达式的值必须是整数或字符型。整数型包括:byte、short、int、long。
那为什么我用了long型会报错呢?!
见代码:
  1. public class Demo3
  2. {
  3. public static void main(String[] args)
  4. {
  5.   long x=2,y=1;     ----------------------------》定义long型变量    :报错!
  6.   switch(x+y)         ---------------------------》x+y也是long型
  7.   {
  8.    case 1:
  9.     System.out.println(x+y);
  10.     break;
  11.    case 3:
  12.     System.out.println(x+y);
  13.    case 0:
  14.     System.out.println(x+y);
  15.     break;
  16.    default:
  17.     System.out.println("没有"+(x+y));
  18.        break;
  19.   }
  20. }
  21. }
  22. <p> </p>
复制代码

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

11 个回复

正序浏览
switch 只支持int,byte,char,shor,,1.7以后,,支持了string  ,也算是模仿C#了
回复 使用道具 举报
switch的判定里不能用long类型,你可以试试int,byte,char,short这些类型
回复 使用道具 举报
错!!!     switch    里面的Case值必须为   int    型
回复 使用道具 举报
贾永长 发表于 2013-6-27 14:21
原来如此啊 你的讲解挺详细的 还给我纠正了 要加上l  谢了! 谢谢大家了!  ...

不用谢,咱们都是黑马家的人嘛,既然都是黑马家的,就是一家人咯

嘿嘿,一家人,不用谢

偷偷告诉你

我也是正在努力成长中的菜鸟一枚

加油!
回复 使用道具 举报
王涵晴 发表于 2013-6-27 14:26
switch语句的三个特点:
1、被选择的表达式的值,只接收四中类型 byte,short,int,char
2、在switch当中 ...

恩恩,switch语句的三个特点记住了 认真加油! 谢了:handshake
回复 使用道具 举报
switch语句的三个特点:
1、被选择的表达式的值,只接收四中类型 byte,short,int,char
2、在switch当中这些case是没有顺序的,但还是从第一个具体答案先执行
3、switch的结束有两种方式,第一种方式是执行到break就结束了;第二种方式是执行到switch语句的大括号,然后结束
    如果执行完default后没有碰到break,也没有碰到大括号,则继续往下执行;

{:soso_e176:}这是毕老师讲的switch语句的三个特点,switch语句能接收的类型里面没有long类型,
{:soso_e176:}要认真哦,加油、
回复 使用道具 举报
特点:
1、被选择的表达式的值,只接收四中类型 byte,short,int,char
2、在switch当中这些case是没有顺序的,但还是从第一个具体答案先执行
3、switch的结束有两种方式,第一种方式是执行到break就结束了;


{:soso_e176:}这是毕老师讲的switch语句的三个特点,switch语句能接收的类型里面没有long类型,
{:soso_e176:}要认真哦,加油、
回复 使用道具 举报
咦,我盗了太阳 发表于 2013-6-27 13:49
1、switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.所以long类型在这里会报错
2、long ...

原来如此啊 你的讲解挺详细的 还给我纠正了 要加上l  谢了! 谢谢大家了!:handshake
回复 使用道具 举报
1、switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.所以long类型在这里会报错
2、long类型 应该写为long x=2l,y=1l,后面要加上l

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
在switch(x)中,x只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。但是long类型不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它不能作用于swtich语句中。


评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
小弟,不能是long
switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
jdk1.5判断条件可以接收枚举 enum

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马