switch 语法:
switch (key) {
case value:
break;
default:
break;
}
switch的执行过程:
首先判断所有的case,如果有对应的case 执行后需要寻找结束点(break),如果在当前的case中没有break;则继续执行下一个case直到遇到break为止如果没有找 到对应的 case ,则会重新查找default(default的位置并不是 固定在最下面的),执行完default以后会接着寻找break一直到 结束
说明:
1.switch(条件)可以是一个表达式,要的是结果
2.case 值 所支持的数据类型有byte,short,int, char.case 值:
3switch条件和case值进行比较, 如果相同则执行当前case中代码
4.当以上case的值都不符合条时候,走default
5.什么时候我们可以不用break呢?
每个case值不同时,随着值得不同所执行的代码也件值得 不同时候需要break当每个case值不同,但是所执行 的符合条件代码都是相同的时候这时可以不用break。
判断 这个月有多少天
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
System.out.println("请输入年份");
int year=scanner.nextInt();
System.out.println("请输入月份");
int mouth=scanner.nextInt();
int days=0;
switch (mouth) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if (year/4==0&&year/400!=0||year/100!=0) {
days=29;
} else {
days=28;
}
default:
System.out.println("月份错误");
}
System.out.println(year+"年"+mouth+"月,一共有:"+days+"天");
}
在switch中,只能是一个整数表达式或枚举常量,整数表达式可以是int基本类型integer包装类型,由于,byte,short,char都可以隐含转换int。显然,long和string类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作于swtich语句中。