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