카테고리 없음

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 를 함께 묶어서 사용할지는 요구사항에 따라 다르다.

   둘의 차이를 이해하고 적절하게 사용해야 한다.