카테고리 없음
Java if문3 - if문과 else if 문
괘창
2024. 6. 27. 22:09
■ if 문과 else if 문
if문에 else if를 함께 사용하는 것은 서로 연관된 조건일 때 사용한다.
서로 관련이 없는 독립 조건이면 else if를 사용하지 않고 if 문을 각각 따로 사용해야 한다.
예시)
// 예시1. if-else 사용: 서로 연관된 조건이어서, 하나로 묶을 때
if (condition1) {
// 작업1 수행
} else if (condition2) {
// 작업2 수행
}
// 예시2. if 각각 사용: 독립 조건일 때
if (condition1) {
// 작업1 수행
}
if (condition2) {
// 작업2 수행
}
# 예시 1은 작업 1, 작업2 둘 중 하나만 수행된다.
# 예시 2는 조건만 맞다면 둘다 수행될 수 있다.
※ if 문에 여러 조건이 있다고 항상 if-else 로 묶어서 사용할 수 있는 것은 아니다.
조건이 서로 영향을 주지 않고 각각 수행해야 하는 경우라면
else if 문을 수행하면 안되고, 여러 if문을 분리해서 사용해야한다.
★각 조건이 다른 조건과 연관되지 않고, 각각의 조건에 대해 별도의 작업을 수행할 때 이런 상황이 발생한다.
문제
온라인 쇼핑몰 할인 시스템 개발 중이다.
한 사용자가 어떤 상품을 구매할 때, 다양한 할인 조건에 따라 총 하인 금액이 달라진다.
● 아이템 가격이 10000원 이상일 때, 1000원 할인
● 나이가 10살 이하일 때 1000원 할인
※ 이 할인 시스템의 핵심은 한 사용자가 동시에 여러 할인을 수 있다.
만원 이상 아이템 구매 후 천원 할인, 동시에 나이가 10살 이하면 추가 천원 할인으로 총 2천원 할인 가능!
문제 코드)
package cond;
public class if5 {
public static void main(String[] args) {
int price = 10000; // 아이템 가격
int age = 10;
int discount = 0;
if(price >= 10000) {
discount = discount + 1000;
System.out.println("10000원 이상 구매, 1000원 할인");
}
if (age <= 10) {
discount = discount + 1000;
System.out.println("어린이 1000원 할인");
}
System.out.println("총 할인금액 : " + discount+ "원");
}
}
실행 결과)

# 문제 코드에는 각각 독립된 if 문이 있다. 따라서 해당하는 모든 할인을 적용한다.
# 만약 else if 를 사용하면 첫 번째 충족하는 조건만 할인되고 나머지는 무시된다.
따라서 구매자는 나머지 할인을 놓칠 수 있다.
else if 적용 문제 코드)
package cond;
public class if6 {
public static void main(String[] args) {
int price = 10000;
int age = 9;
int discount = 0;
if(price >= 10000) {
discount = discount + 1000;
System.out.println("10000원 이상 구매. 1000원 할인");
} else if (age <= 10) {
discount = discount + 1000;
System.out.println("어린이 1000원 할인");
} else {
System.out.println("할인 없음");
}
System.out.println("총 할인 금액 : " + discount + "원");
}
}
실행 결과)

# 첫 번째로 충족되는 조건인 1000원 할인만 적용되고, if문을 빠져나오기 때문에 구매자는 나머지 할인을 놓치게 된다.
※ if 문을 각각 사용할지, if 와 else if 를 함께 묶어서 사용할지는 요구사항에 따라 다르다.
둘의 차이를 이해하고 적절하게 사용해야 한다.
