day4 闰年的计算
4.1 思路整理:何为闰年?
(1)非世纪年(不能被100整除的年份)能被4整除且不能被100整除的年份为闰年 (2)世纪年 能被400整除的才是闰年 文中给出两种计算闰年的方法,结合day3的if语句,第一种把所有逻辑判断放在一个if中完成,会使用一些与或非逻辑运算,如果逻辑判断条件过多,如果放在一个if判断中则会增加代码的可维护性,但第二种方法是一个条件一个条件判断,如果其中有一个不满足就退出,这样是根据if-else if顺序执行,来判断只有有不符合条件就退出、
4.2 核心代码
/**
* @param paraYear
* @return Is the given year leap? true or false;
*/
public static boolean isLeapYear(int paraYear) {
if ((paraYear % 4 == 0) && (paraYear % 100 != 0) || (paraYear % 400 == 0)) {
return true;
} else {
return false;
}
}
/**
* @param paraYear
* @return Is the given year leap? Replace the complex condition with a number of if. return true or false
*/
public static boolean isLeapYearV2(int paraYear) {
if (paraYear % 4 != 0) {
return false;
} else if (paraYear % 400 == 0) {
return true;
} else if (paraYear % 100 == 0) {
return false;
} else {
return true;
}
}
day5 基本switch 语句
5.1 switch也属于条件分支语句
switch中表达式的值去和case后的值做匹配,若匹配正确则执行其后需要执行代码,遇到break结束执行。若没有case匹配,则最后就会执行default,default 分支不需要 break 语句
5.2 思考
(1)每一个case后都要跟break吗? 答案是否定的。不加break的话将会跳转到相应的case去执行且其以下的所有语句。 (2)switch和if条件语句有什么区别呢? 最明显差异是表示执行的结构,if中的表达式结果只能是boolean类型,而switch恰恰相反,他表示式结果可以是int,char等。我在实际使用过程中if语句用的比较多,但涉及到判断的if分支较多时,我会考率使用switch,这样效率会高一点