switch-case不使用break的应用例子:键盘输入2020年的月日,输出是2020年的第多少天switch (month)
{
case 12:
allDate +=30;
case 11:
allDate +=31;
case 10:
allDate +=30;
case 9:
allDate +=31;
case 8:
allDate +=31;
case 7:
allDate +=30;
case 6:
allDate +=31;
case 5:
allDate +=30;
case 4:
allDate +=31;
case 3:
allDate +=29;
case 2:
allDate +=31;
case 1:
allDate +=day;
}
有些switch-case可以不使用break,在使用累加的时候可以考虑不使用break改进:将年份也键盘输入主要是闰年和平年时候的二月天数不同,可以加if语句实现case 3:
if ((year%4==0&&year%100!=0)||year%400==0)
{
allDate +=29;
}else{
allDate +=28;
}switch-case代码switch (month)
{
case 12:
allDate +=30;
case 11:
allDate +=31;
case 10:
allDate +=30;
case 9:
allDate +=31;
case 8:
allDate +=31;
case 7:
allDate +=30;
case 6:
allDate +=31;
case 5:
allDate +=30;
case 4:
allDate +=31;
case 3:
if ((year%4==0&&year%100!=0)||year%400==0)
{
allDate +=29;
}else{
allDate +=28;
}
case 2:
allDate +=31;
case 1:
allDate +=day;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030213734345.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjQyOTI5MA==,size_16,color_FFFFFF,t_70#pic_center)
练习:从键盘读入一个学生的成绩,存放在score中,输出相应的成绩等级,使用switch-case结构public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
System.out.println(“请输入分数:”);
int score=scan.nextInt();
switch (score/10)
{
case 10:
case 9:
System.out.println(“等级:A”);
break;
case 8:
case 7:
System.out.println(“等级:B”);
break;
case 6:
System.out.println(“等级:C”);
break;
default:
System.out.println(“等级:D”);
}
}
1、凡是可以使用switch-case的结构,都可以转换为if-else,反之不成立2、当我们写分支结构时,当发现可以使用switch-case(但是case情况不太多),同时又可以使用if-else,我们优先使用switch-case,原因:switch-case的效率较高