문제
연령에 따라 다른 메시지를 출력하는 프로그램을 작성해야 한다.
int, age라는 변수를 사용해야 하며 연령에 따라 다음의 출력을 해야한다.

● 7세 이하일 경우 : "미취학"
● 8세 이상 13세 이하일 경우 : "초등학생"
● 14세 이상 16세 이하일 경우 : "중학생"
● 17세 이상 19시 이하일 경우 : "고등학생"
● 20세 이상일 경우 : "성인"

 

 

예제 코드)

package cond;

public class If3 {
    public static void main(String[] args) {
        int age = 14;

        if(age <= 7) { //미취학
            System.out.println("미취학");
        }
        if(age >= 8 && age <= 13) { // 8~13 : 초등학생
            System.out.println("초등학생");
        }
        if(age >= 14 && age <= 16) { // 14~16 : 중학생
            System.out.println("중학생");
        }
        if(age >= 17 && age <= 19) { // 17~19 : 고등학생
            System.out.println("고등학생");
        }
        if(age >= 20) { // 20이상 : 성인
            System.out.println("성인");
        }
    }
}

 

 

실형 결과)

# 위 코드는 단점이 있다.

  • 불필요한 조건 검사 : 이미 조건을 만족해도 불필요한 다음 조건을 계속 검사한다.
    예를 들어 나이가 5살이라면 미취학이 출력된다. 하지만 나머지 if 문을 통한 조건 검사도 모두 실행해야 한다.

  • 코드 효율성 : 8살인 초등학생이라면 미취학을 체크하는 조건인 age <= 7을 통해 나이가 8살이 넘는걸 알 수 있다.
    하지만 age >= 8 && age <= 13 이라는 2가지 조건을 모두 수행한다.
    여기서 age >= 8 이라는 조건은 앞의 age <= 7이라는 조건과 관련 있으며, 결과적으로 조건을 중복 체크한 것이다.

※ 이런 코드에 else if 를 사용해서 불필요한 조건 검사를 피하고 코드 효율성을 높일 수 있다.


- else if

else if문 이란?
if 문의 조건이 거짓일 때 다음 조건을 검사한다.
만약 앞선 if 문이 참이라면 else if를 실행하지 않는다.

- else if 코드

if (condition1) {
    // 조건 1이 참일 때 실행되는 코드
} else if (condition2) {
    // 조건 1이 거짓이고, 조건 2가 참일 때 실행되는 코드
} else if (condition3) {
    // 조건 2이 거짓이고, 조건3이 참일 때 실행되는 코드
} else {
    // 모든 조건이 거짓일 때 실행되는 코드
}

# 쉽게 생각해서 전체 if문을 하나로 묶는다고 보면 된다.

   특정 조건이 만족하면 해당 코드를 실행하고 if 문 전체를 빠져나온다.

   특정 조건을 만족하지 않으면 다음 조건을 검사힌다.

※ 핵심은 순서대로 맞는 조건을 찾아보고, 맞는 조건이 있으면 1개만 실행되는 것이다.


- else 생략 코드

if (condition1) {
    // 조건1이 참일 때 실행되는 코드
} else if (condition2) {
    // 조건1이 거짓이고, 조건2가 참일 때 실행되는 코드
}

 

 

else if를 사용한 예제 코드)

package cond;

public class if4 {
    public static void main(String[] args) {
        int age = 18;

        if(age <= 7) { // ~7 : 미취학
            System.out.println("미취학");
        } else if (age <= 13) { // 8~13 : 초등학생
            System.out.println("초등학생");
        } else if (age <= 16) { //14~16 : 중학생
            System.out.println("중학생");
        } else if (age <= 19) { // 17~19 : 고등학생
            System.out.println("고등학생");
        } else { // 20~ : 성인
            System.out.println("성인");
        }
    }
}

 

 

실행 결과)

'Language > Java' 카테고리의 다른 글

Java 삼항 연산자  (0) 2024.06.28
Java switch문  (0) 2024.06.27
Java if문1 - if, else  (0) 2024.06.27
Java 연산자 문제 풀이  (0) 2024.06.27
Java 대입연산자  (0) 2024.06.27

+ Recent posts