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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 328078121 中级黑马   /  2013-8-30 10:50  /  1195 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 328078121 于 2013-8-30 19:48 编辑

switch语句中的判断变量如switch....是不是什么类型的都可以呢?

1 个回复

倒序浏览

一下以实验来说明
Java代码

public static void main(String[] args) {
// byte
byte byte_n = 0;
switch (byte_n) {
case 0:
System.out.println("byte可以用于switch语句");
break;
}
// Byte类
Byte byte_m = 0;
// 需要Java5.0(1.5)以上版本支持
switch (byte_m) {
case 0:
System.out.println("Byte类可以用于switch语句");
System.out.println();
break;
}
// char
char char_n = 0;
switch (char_n) {
case 0:
System.out.println("char可以用于switch语句");
break;
}
// Character类

Character char_m = 0;
// 需要Java5.0(1.5)以上版本支持
switch (char_m) {
case 0:
System.out.println("Character类可以用于switch语句");
System.out.println();
break;
}
// short
short short_n = 0;
switch (short_n) {
case 0:
System.out.println("short可以用于switch语句");
break;
}
// Short
Short short_m = 0;
// 需要Java5.0(1.5)以上版本支持
switch (short_m) {
case 0:
System.out.println("Short类可以用于switch语句");
System.out.println();
break;
}
// int
int int_n = 0;
switch (int_n) {
case 0:
System.out.println("int可以用于switch语句");
break;
}

// Integer类
Integer int_m = 0;
// 需要Java5.0(1.5)以上版本支持
switch (int_m) {
case 0:
System.out.println("Integer类可以用于switch语句");
System.out.println();
break;
}
// long
l

// break;
// }
// Float类
Float float_m = 0.0F;
// 编译错误,Float类型不能用于switch语句

// switch (bool_b) {
// case true:

}
}
运行结果如下:
   1. byte可以用于switch语句
   2. Byte类可以用于switch语句    3 char可以用于switch语句
   4. Character类可以用于switch语句
   5. short可以用于switch语句
   6. Short类可以用于switch语句
   7. int可以用于switch语句
   8. Integer类可以用于switch语句


总结一下:
   1. byte、char、short、int四种基本类型以及它们的包装类(需要Java5.0/1.5以上版本支持)
都可以用于switch语句。
   2. long、float、double、boolean四种基本类型以及它们的包装类(在Java所有版本中)
都不能用于switch语句。
   4. 所有类型的对象(包括String类,但在Java5.0/1.5以上版本中,该项要排除
byte、char、short、int四种基本类型对应的包装类)都不能用于switch语句。

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

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