过多的if else真的脑壳疼。
让if else变得优雅些。。。。
一、使用return
比如在不符合条件、没必要往下运行时,不要再else写逻辑。
方法....
if(key==null || key==""){
return false;
}
return true;
二、使用三元运算符
我们会遇见这样的情况,比如查询成绩 60分以上展示为及格,60分以下为不及格
Integer score = 80;
if(score>60){
return "100";
}else{
return "60";
}
no no no no no no no no no no no no no no no no no no no no
这样做:
score = score > 60 ? 100 : 60;
三、合并条件表达式
将逻辑判断进行梳理和归纳,使用更简单的方式进行判断。
String key = "news";
if(key.contains("n")){
return key;
}
if(key.endsWith("s")){
return key;
}
if (key.startsWith("n")){
return key;
}
优化一下:
String key = "news";
if(key.contains("n") || key.endsWith("s") ||key.startsWith("n")){
return key;
}
四,梳理优化判断逻辑
和上面这一点比较相似,通过分析逻辑将判断逻辑改的简单易懂一些,如下面这个嵌套判断
// 年龄大于 18
if (age > 18) {
// 工资大于 5000
if (salary > 5000) {
// 是否漂亮
if (pretty == true) {
return true;
}
}
}
return false;
优化后:将包含的逻辑关系,改成平行关系,代码可读性更高,逻辑更清晰。
if (age < 18) { //年龄小于18岁
return false;
}
if(salary<5000){ //工资少于5000
return false;
}
//是否漂亮
return pretty==true;
五、能使用switch的时候,选择switch
String typeCode = list.get(i).getTypeCode();
if("0".equals(typeCode)){
lingYu.add(list.get(i));
}else if("1".equals(typeCode)){
gangWei.add(list.get(i));
}else if("2".equals(typeCode)){
jiBie.add(list.get(i));
}else{
nanDu.add(list.get(i));
}
优化一下:
String typeCode = list.get(i).getTypeCode();
switch (typeCode) {
case "0"://领域
lingYu.add(list.get(i));
break;
case "1"://岗位
gangWei.add(list.get(i));
break;
case "2"://级别
jiBie.add(list.get(i));
break;
default://难度 ---3
nanDu.add(list.get(i));
break;
}
六、使用Map
使用map将需要判断的数据定义成元素信息可以直接避免if else
if (t == 1) {
type = "name";
} else if (t == 2) {
type = "id";
} else if (t == 3) {
type = "mobile";
}
优化后:
Map<Integer, String> typeMap = new HashMap<>();
typeMap.put(1, "name");
typeMap.put(2, "id");
typeMap.put(3, "mobile");
之前的判断就成了一行代码。。。。。。。。。yeah!
type = typeMap.get(ty);