语法:
switch(表达式){
case 值1: 判断表达式的值是否在值1,如果相等则执行代码块1
代码块1; break; 执行完成后,如果没有break,则自动执行后续语句,但是不进行判
定。如果有break则立即中断switch的执行,跳到switch块的下一局继续执行
多个case语句:
... ...
default:如果所有的case都不能成立,则执行代码块n
代码块n; break;
}
语法点:
- 表达式的计算结果可以是整型【不允许long类型】,可以是char,同时允许是字串类型[String] 也可以是枚举类型
- case值类型必须和switch条件类型相同或者能隐式转换为switch表达式类型
- case值必须唯一,不能与其它的重复
- default的位置没有特殊要求,但是一定是所有的case值不相等时才会执行。但是为了增强可读 性,所以一般建议写在所有的case之后
知识点了解完后我们开始做项目
需求:输入月份,显示对应的本月的天数
System.out.println("请输入月份:");
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("本月31天");
break;
case 2:
System.out.println("请输入年份:");
int year = sc.nextInt();
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
System.out.println("本月29天");
} else
System.out.println("本月28天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("本月30天");
break;
default: //default写在switch内部的任何位置上实际都不会影响执行逻辑,但是不建议, 因为会影响可读性
System.out.println("月份错误!");
break;
}
}
}
注意一定要注意语法格式!!!