if更适合区间的判断
switch 更适合等式的判断
表达式类型要和常量相匹配
switch表达式只能是 byte,short,char,int,但是1.7之后可以使用String
switch(表达式){
case 常量1:
执行语句1:
break;
case 常量2:
执行语句2:
break;
......
default:
执行语句:
break;
}
例子
class Demo5{
public static void main(String[] args){
/* 打印指定年月的天数
31:1,3,5,7,8,10,12
30:4,6,9,11
29:平年2
28:闰年2 如果年可以被400整除 或者可以被4整除但是不能被100整除是闰年
*/
//定义年和月
int year = 2019;
int month = 2;
//定义一个未知的变量
int day = -1;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
if(year % 4 == 0 && (year % 4 == 0 && year % 100 != 0)){
day = 29;
}else{
day = 28;
}
break;
default:
System.out.println("输入的月份不合理");
}
if(day != -1){
System.out.println(year+"年"+month+"月"+day+"天");
}
}
}