switch 贯穿的妙用
Posted 人塞不能怨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch 贯穿的妙用相关的知识,希望对你有一定的参考价值。
switch分支结构
switch 和 if 是我们经常要用到的分支结构,两者各有千秋。if 比较适合判断区间范围的情况,而switch非常适合判断特定值或常量的情况。
下面是switch分支的结构
switch(算数表达式)
case 常量1:
//代码块1
break;
case 常量2:
//代码块2
break;
default:
//代码块3
break;
贯穿
我们在使用switch结构时应该非常注意关键字break,他使得程序在匹配到特定值后跳出整个switch代码块,后边的代码便不会执行。如果缺少break,程序会继续向下执行到遇到第一个break为止,我们称该现象为贯穿。贯穿通常时我们应该避免的情况,但在某些情况下如果加以利用会有意想不到的效果。
switch贯穿的使用
假如我们现在要根据特定日期判断该日期是该年第几天。要解决这个问题需要判断该日期所在月之前的所有天数。而月份分大月跟小月跟二月,大月有31天,小月有30天,二月闰年有29天,常年有28天。如果使用if 分支来做需要对每个月进行判断,会比较繁琐,利用switch的贯穿可以极大的简化判断过程。
代码示例
int year = 2021, month = 4, day = 7, total = day;
for(int i = 1; i < month; i++)
switch(month)
case 1:case 3 :case 5:case 7:case 8:case 10:case 12:
total += 31;
break;
case 4:case 6:case 9:case 11:
total += 30;
break;
case 2:
total += year%4 == 0 && year%100 != 0 || year%400 =0 ? 29 : 28;
break;
System.out.println(year + "年" + month + "月" + day + "日是该年第" + total + "天");
以上是关于switch 贯穿的妙用的主要内容,如果未能解决你的问题,请参考以下文章