Java/[inflearn] 자바 입문

[김영한_자바입문][4. 함수] if / else if문 활용 문제 접근 (p.17-19, p.21)

줌인. 2024. 1. 20. 20:40
코드를 작성할 때는 각 조건의 범위를 정확히 고려하여,
다양한 조건이 서로 겹치지 않도록 주의해야 한다.

 

 

 

 

[p.17 / 문제1. IF1] 머리속으로 그리기 > 90↑ : A / 80~'90' : B / 70~'80' : C 

public static void main(String[] args) {
    int score = 55;

    if (score >= 90) {
        System.out.println("학점은 A 입니다.");
    } else if (score >= 80) {
        System.out.println("학점은 B 입니다.");
    } else if (score >= 70) {
        System.out.println("학점은 C 입니다.");
    } else if (score >= 60) {
        System.out.println("학점은 D 입니다.");
    } else {
        System.out.println("학점은 F 입니다.");
    }
}

 

[p.19 / 문제2. IF2] 머리속으로 그리기 > 150↑ : 비행기 / 100~'150' : 자동차 / 10~'100' : 자전거 

public static void main(String[] args) {
    int distance = 150;

    if (distance <= 1) {
        System.out.println("도보");
    } else if (distance <= 10) {
        System.out.println("자전거");
    } else if (distance <= 100) {
        System.out.println("자동차");
    } else {
        System.out.println("비행기");
    }
}

 

이 두 코드에서 공통으로 사용된 else if 구조는 범위를 지정하여 조건을 표현한다.

이는 각 범위에 해당하는 조건이 순차적으로 확인되며, 이전 조건이 성립되지 않았을 때 다음 조건이 검사되도록

구성되었다.

 

이를 통해 범위를 나눠 특정 조건이 충족되면 해당하는 내용이 실행되도록 설계되었다.

그러나 주의할 점은 각 범위가 서로 겹치지 않도록 조심해야 한다.

겹칠 경우에는 더 상위에 있는 조건이 항상 우선하여 실행되므로 예상과 다르게 동작할 수 있다.

 

두 코드는 else if 구조를 사용하였으며 이전 조건이 성립되지 않았을 때
다음 조건이 검사되도록 설계되었다.
따라서 각 범위가 서로 겹치지 않도록 구성하는 것이 중요하다.

 

 

 

[p.21 / 문제2-1. MoveRateEx] 

public static void main(String[] args) {
    double rating = 7.1;

    if (rating <= 9) {
        System.out.println("'어바웃 타임'을 추천합니다.");
    }
    if (rating <= 8) {
        System.out.println("'토이스토리'를 추천합니다.");
    }
    if (rating <= 7) {
        System.out.println("'고질라'를 추천합니다.");
    }
}

 

상기는 독립 조건으로 콘솔에 내용값이 최소 1개에서 최대 3개까지 출력될 수 있지만 위와 비슷한 방법으로

접근하면 된다.

 

예시로 7을 입력하면 고질라가 출력이 되고, 7.1을 입력하면 고질라가 출력이 되지않으면 된다.

그렇다면 7.1에 들어가는 어바웃타임과 토이스토리가 나오기 위해선 조건 1과 조건 2를 만족시켜야한다는 의미다.

즉 두가지를 성립시키기 위해선 rating값이 조건 3보다 크되, 1/2보다는 작아야 한다는 의미로 해석하면 된다.

 

728x90