Java的switch-case语句

switch-case语句的格式:

switch ( 表达式 ) {
    case 常量表达式1: 语句1;break;
    case 常量表达式2: 语句2;break;
    default: 语句;break;
}

 Tips:

1) switch后面的表达式只能是整型或字符型变量;包括基本类型的byte,short,int,char,以及byte,short,int,char的封装类Byte,Short,Integer,Character,还有枚举类型(Enum)。

 

2) 如果case语句后面没有break,执行完此case语句后,会继续执行后面的case语句和default语句,直到遇到break或switch语句全部执行结束。

switch(10){
	case 10: System.out.println("10");
	case 20: System.out.println("20");break;
	case 30: System.out.println("30");break;
	default: System.out.println("0");break;
}

 执行结果:

  10
  20

3) 可以存在多个case语句,下面的例子就是case 10和case 20执行的内容是一样的;

switch(10){
	case 10: 
	case 20: System.out.println("20");break;
	case 30: System.out.println("30");break;
	default: System.out.println("0");break;
}

 运行结果:

20

4) switch后面的表达式是枚举类型(Enum)时,case后面可直接跟枚举项;

/**
 * 商品的排序用枚举实现
 */
public enum ProductOrderBy {
	SORTFIELD_DESC {
	    ...
    },
	CREATED_ASC {
		...
	},
	CREATED_DESC {
		...
	}
    ...
}
/**
 * switch使用时,case后面直接跟SORTFIELD_DESC,而不是ProductOrderBy.SORTFIELD_DESC
 * 其他地方则必须用ProductOrderBy.SORTFIELD_DESC
 */
switch(ProductOrderBy.CREATED_ASC){
	case SORTFIELD_DESC: System.out.println("排序倒序");break;
	case CREATED_ASC: System.out.println("时间正序");break;
	case CREATED_DESC: System.out.println("时间倒序");break;
	default: System.out.println("默认排序");break;
}

猜你喜欢

转载自chenjie1121.iteye.com/blog/2229564