解:switch能作用在char、byte、short、int及其对应的包装类,
不能作用在long、double、float、boolean及其对应的包装类
JDK1.7后可以作用在string上
switch中可以是枚举类型
package com.beginmind.javainstancemaster;
/**
* 测试switch中的表达式是否可以是byte、string、short、char
* @author JaneYork
*
*/
public class SwitchTest {
public static void main(String[] args) {
int season = 2;
switch(season){
case 1:
System.out.println("春季");
break;
case 2:
System.out.println("夏季");
break;
default:
System.out.println("no");
break;
}
System.out.println("------------------------------");
byte color = 1;
switch(color){
case 1:
System.out.println("red");
break;
}
System.out.println("------------------------------");
/* boolean flag = true;
switch(flag){
*//**
* 报错:
* Cannot switch on a value of type boolean.
* Only convertible int values or enum constants are permitted
* 不能切换Boolean类型,只有可转换的int值或者枚举常量才允许
*//*
}*/
}
}
笔者使用的是JDK1.6,switch中使用string时出现如下结果:解决方法就是更换1.7以上版本