Java 코드를 작성할 때 특정 조건을 처리하기 위해 if
두 번 쓰기와 else if
를 선택해야 하는 경우가 있습니다. 두 방식의 차이점과 장단점을 예제와 함께 살펴보고, 어떤 상황에서 더 적절한지 알아보겠습니다.
사용자가 선택한 요일에 따라 서로 다른 메시지를 출력하는 프로그램을 작성한다고 가정해 봅시다. 사용자 입력에 따라 주말과 주중을 구분하여 다른 메시지를 출력하는데, 이를 if
와 else if
로 처리할 수 있습니다.
public void printDayMessage(String day) {
if ("Saturday".equals(day) || "Sunday".equals(day)) {
System.out.println("It's the weekend! Enjoy your time off.");
} else if ("Monday".equals(day) || "Tuesday".equals(day) || "Wednesday".equals(day) ||
"Thursday".equals(day) || "Friday".equals(day)) {
System.out.println("It's a weekday. Let's be productive!");
}
}
if
두 번 쓰기 vs else if
선택위의 코드는 else if
를 사용해 주말과 주중을 구분합니다. 그렇다면 if
두 번을 쓰는 방식과 else if
중 어떤 것이 더 적절할까요? 하나씩 살펴보겠습니다.
else if
를 사용하는 것이 좋은 이유가독성
else if
를 사용하면 두 조건이 서로 배타적임을 명확히 나타낼 수 있습니다. 주말과 주중은 겹치지 않는 개념이므로, else if
로 처리하면 논리적 흐름이 더 분명해집니다.
코드 효율성
첫 번째 조건이 참일 때 두 번째 조건을 검사하지 않기 때문에 약간의 성능 향상이 있습니다. 특히 조건이 복잡하거나 계산 비용이 높은 경우 else if
를 통해 불필요한 연산을 피할 수 있습니다.
의도 표현
else if
를 사용하면 두 조건이 상호 배타적이라는 의도가 더 명확히 전달됩니다. 이는 코드 유지보수 측면에서도 협업하는 개발자들이 논리적 흐름을 쉽게 이해할 수 있도록 돕습니다.
if
두 번 쓰는 것이 더 적합한 경우만약 두 조건이 독립적이거나, 조건들이 상호 배타적이지 않다면 if
두 번을 쓰는 것이 적절할 수 있습니다. 예를 들어, 다음과 같은 경우입니다.
public void checkConditions(boolean conditionA, boolean conditionB) {
if (conditionA) {
System.out.println("Condition A is true.");
}
if (conditionB) {
System.out.println("Condition B is true.");
}
}
위 코드에서 conditionA
와 conditionB
는 서로 독립적입니다. if
두 번을 사용하는 것이 이 경우 더 직관적이고 논리적 흐름이 잘 전달됩니다.
else if
를 사용해 주말과 주중을 구분하는 최종 코드는 다음과 같습니다.
public void printDayMessage(String day) {
if ("Saturday".equals(day) || "Sunday".equals(day)) {
System.out.println("It's the weekend! Enjoy your time off.");
} else if ("Monday".equals(day) || "Tuesday".equals(day) || "Wednesday".equals(day) ||
"Thursday".equals(day) || "Friday".equals(day)) {
System.out.println("It's a weekday. Let's be productive!");
}
}
else if
를 사용하는 것이 가독성, 코드 효율성, 의도 표현 측면에서 유리합니다.if
두 번을 사용하는 것이 더 명확합니다.이처럼 조건문을 상황에 맞게 선택하면 코드의 가독성과 효율성을 높일 수 있습니다.