怎么减少if()---else操作,优化代码

一:提前return,减少else
如果 if-else 代码块包含 return 语句,可以考虑通过提前 return,把多余 else 干掉.
代码举例子:
更改之前:

if (condition1) {
if (condition2) {
return getSomething();
} else {
return 0;
}
} else {
return 0;
}

更改之后

//这里最好对这个flag所判断的逻辑补充注释进行描述
boolean flag = !condition1 || (condition1 && !condition2)
if(flag) {
return 0;
}
 
if (condition1 && condition2) {
return getSomething();
}
 

二:使用三元运算符
代码举例:
更改前:

int  price ; 
if(condition){ 
    price = 80; 
}else{ 
    price = 100; 
} 

更改后:

int  price ; 
int price = condition?80:100; 

三:使用Java8的新特性Optional判断是否为null
代码举例:
更改前:

String str = "xxxxx"; 
if (str != null) { 
    System.out.println(str); 
} else { 
    System.out.println("Null"); 
} 

更改后:

Optional<String> strOptional = Optional.of("xxxxx"); 
strOptional.ifPresentOrElse(System.out::println, () -> System.out.println("Null")); 

四:使用枚举减少if --else
代码举例:
更改前:

String OrderStatusDes; 
if(orderStatus==0){ 
    OrderStatusDes ="订单未支付"; 
}else if(OrderStatus==1){ 
    OrderStatusDes ="订单已支付"; 
}else if(OrderStatus==2){ 
   OrderStatusDes ="已发货";  
} 
... 

更改后:(先定义一个枚举)

public enum OrderStatusEnum { 
    UN_PAID(0,"订单未支付"),PAIDED(1,"订单已支付"),SENDED(2,"已发货"),; 
 
    private int index; 
    private String desc; 
 
    public int getIndex() { 
        return index; 
    } 
 
    public String getDesc() { 
        return desc; 
    } 
 
    OrderStatusEnum(int index, String desc){ 
        this.index = index; 
        this.desc =desc; 
    } 
 
    OrderStatusEnum of(int orderStatus) { 
        for (OrderStatusEnum temp : OrderStatusEnum.values()) { 
            if (temp.getIndex() == orderStatus) { 
                return temp; 
            } 
        } 
        return null; 
    } 
} 

有了枚举之后,以上 if-else 逻辑分支,可以优化为一行代码:

String OrderStatusDes = OrderStatusEnum.0f(orderStatus).getDesc();
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
优化大量的if-else代码有多种方法。其中一种方法是使用枚举来替代if-else逻辑分支。通过定义一个枚举类型,将不同的条件与对应的处理逻辑关联起来,可以将if-else语句优化为一行代码。例如,可以使用枚举类型来获取订单状态的描述信息,而不需要使用大量的if-else语句来判断订单状态并返回相应的描述信息\[1\]。 另一种优化方法是合并条件表达式。通过将多个条件合并为一个复合条件,可以减少if-else语句的数量。这样可以提高代码的可读性和可维护性\[2\]。 还有一种优化方法是使用Optional。Optional是Java 8引入的一个类,用于处理可能为空的值。通过使用Optional,可以简化对空值的判断和处理,减少if-else语句的使用\[3\]。 总之,优化大量的if-else代码可以通过使用枚举、合并条件表达式和使用Optional等方法来实现。这些方法可以提高代码的可读性、可维护性和性能。 #### 引用[.reference_title] - *1* *3* [if-else代码优化的八种方案](https://blog.csdn.net/weixin_36755535/article/details/123377660)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [if-else优化](https://blog.csdn.net/weixin_43238030/article/details/127536083)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值