switch能否作用在char上,能否作用在byte上,能否作用在string上?

2023-10-11 13:52:34 浏览数 (2)

解:switch能作用在char、byte、short、int及其对应的包装类,

不能作用在long、double、float、boolean及其对应的包装类

JDK1.7后可以作用在string上

switch中可以是枚举类型

代码语言:javascript复制
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以上版本

0 人点赞