if()---else 조작을 줄이고 코드를 최적화하는 방법

12444 단어 토대
1: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();
}
 

2: 3원 연산자 코드 사용 예: 변경 전:
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")); 

4: 열거 감소 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();

좋은 웹페이지 즐겨찾기