学校教会了你if-else,你以为就可以为所欲为?


我怀疑你有被这样的代码支配过,本篇博客提供了四种最简单的操作,没有花里胡哨的到吗,容易上手而且有效。

if (true) {
        } else if (true) {
        } else if (true) {
        } else if (true) {
        } else {
        }

使用三目运算符

这是一种最常见的简化形式,这种简化方式不光可以减少if-else出现的次数,还可以增加代码的简洁度和可读性。

简化前 :

		if(type){
            num = 1;
        } else {
            num = 2;
        }

简化后 :

		num = type?1:2;

使用逻辑运算符合并条件表达式

简化前 :

@Test
    public int discount(boolean isStudent, String city, int age) {
        int count = 10;
        if (isStudent) {
            count = 8;
        }
        if (city.equals("徐州")) {
            count = 8;
        }
        if (age <= 18) {
            count = 8;
        }
        return count;
    }

简化后 :

@Test
    public int discount(boolean isStudent, String city, int age) {
        if (isStudent || city.equals("徐州") || age <= 18)
            return 8;
        else 
            return 10;
    }

但是这种简化方式具有很大的局限性。

提前return

简化前 :

    @Test
    public void test(boolean isStudent) {
        if (isStudent) {
            // do something
        } else {
            return;
        }
    }

简化后 :

	@Test
    public void test(boolean isStudent) {
        if (!isStudent) {
            return;
        }
        // do something
    }

使用枚举

简化前 :

扫描二维码关注公众号,回复: 11128714 查看本文章
@Test
    public String test(int date) {
        if(date == 1){
            return "星期一";
        } else if (date == 2) {
            return "星期二";
        } ... 
        else {
            return "";
        }
    }

简化后 :

import org.junit.Test;

enum Weekday {
    Monday(1, "星期一"),
    Tuesday(2, "星期二"),
    Wednesday(3, "星期三"),
    Thursday(4, "星期四"),
    Friday(5, "星期五"),
    Saturday(6, "星期六"),
    Sunday(7, "星期七");

    private int value;
    private String week;

    private Weekday(int value, String week) {
        this.value = value;
        this.week = week;
    }

    public static String getWeek(int date) {
        for (Weekday c : Weekday.values())
            if (c.value == date) {
                return c.week;
            } else {
                return "";
            }
        return null;
    }

}

public class IfDome {
    @Test
    public String test(int date) {
        return Weekday.getWeek(date);
    }
}
发布了35 篇原创文章 · 获赞 36 · 访问量 6889

猜你喜欢

转载自blog.csdn.net/weixin_46192593/article/details/105744448