让if else变得优雅些

 

过多的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);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值