Java--------------------switch/case
1.定义:
case语句和if语句不太相同,他只能针对某个表达式的值做出判断,从而决定程序究竟执行哪一段代码。
2.格式:
switch(表达式){
case 常量1:
要执行的语句;
break;
case 常量2:
要执行的语句;
break;
case 常量3:
要执行的语句;
break;
default:
要执行的语句;
break;
}
实例:根据数字来判定是周几。
package cn.com.chinasoft.testCase;
public class TestCase {
public static void main(String[] args) {
int i = 9;
switch(i){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期天");
break;
default:
System.out.println("一周只有七天");
break;
}
}
}
特殊情况:(case的穿透性)
case的穿透性就是:若case子句匹配成功后(若不匹配则不能进行穿透),后面没有break,则会向下穿透,一直向下执行,这时候不论case的值是多少都不在匹配,一直执行到程序结束(或遇到break退出程序)。
若case中的情况是一致的,可以简化switch/case,如前面的代码:周一到周五都输出工作日(即输入的int类型为1-5都是工作日)
eg:星期一到五输出工作日,星期六或日输出休息日。
public static void testSwitchTeShu(){
int week = 7;
switch (week) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("输入的字符不是一个有效的星期");
break;
}
}
注意:
swicth后面的表达式是有限制的:
(1)jdk1.0 - jdk1.4:
接收byte,short,int ,char
(2)jdk1.5:
接收byte,short,int,char,enum
(3)jdk1.7:
接收byte,short,int,char,enum,String
。