java学习day4-day5

154 阅读2分钟

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,这样效率会高一点