강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

메리님의 프로필 이미지
메리

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

비교연산자와 반복문+조건문 문제 풀이 (v2)

12:40 printEven 자바 문제 if문

해결된 질문

작성

·

36

0

저번에 반복문 설명하실때 if문은
if ~

(if가 아닐때)else if ~

(else if도 아닐때)else 로 끝마친다고 하셨는데,

else if로 끝내든 else로 끝내든 문법적으로는 상관이 없는 건가요??

답변 1

1

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요, else 는 선택사항입니다. 꼭 작성하지 않으셔도 됩니다.

  • if → else if로 끝나도 문법적으로 전혀 문제없습니다.

  • if로만 여러 개 해도 상관없습니다. 다만, 이 경우에는 분기하지 않고 모든 if를 체크합니다.

  • 다만 모든 경우의 수를 처리하고 싶다면 마지막에 else(또는 추가 else if)를 달아 주는 것이 안전합니다.

     

 

아래에 여러 가지 패턴을 한꺼번에 보여 주는 짧은 예제를 준비했습니다.

각 블록이 “언제 실행되는지” 주석도 달았으니 비교해 보세요.

 

public class IfChainDemo {

    public static void main(String[] args) {
        int score = 75;   // ← 다양한 값으로 바꿔 보세요

        /* 1️⃣ if 단독 ------------------------------------------------*/
        if (score > 90) {
            System.out.println("[if-only] A 학점");
        }
        // 90 이하여도 오류 없음. 단지 아무 일도 안 일어남.

        /* 2️⃣ if + else ---------------------------------------------*/
        if (score >= 60) {
            System.out.println("[if-else] 통과");
        } else {
            System.out.println("[if-else] 낙제");
        }

        /* 3️⃣ if + else if (끝에 else 없음) -------------------------*/
        if (score >= 90) {
            System.out.println("[if-elseIf] A 학점");
        } else if (score >= 75) {
            System.out.println("[if-elseIf] B 학점");
        }
        // 74 이하는 아무 문장도 실행되지 않음 (캡처 안 됨)

        /* 4️⃣ if + else if* + else (권장 포맷) -----------------------*/
        if (score >= 90) {
            System.out.println("[full-chain] A 학점");
        } else if (score >= 75) {
            System.out.println("[full-chain] B 학점");
        } else if (score >= 60) {
            System.out.println("[full-chain] C 학점");
        } else {
            System.out.println("[full-chain] F 학점");
        }

        /* 5️⃣ 반복문 안에서의 사용 예 -------------------------------*/
        System.out.println("\n--- for 루프 예시 ---");
        for (int i = 0; i < 5; i++) {
            if (i == 0) {
                System.out.println("i = 0 → 첫 번째");
            } else if (i % 2 == 0) {
                System.out.println("i = " + i + " → 짝수");
            } else {
                System.out.println("i = " + i + " → 홀수");
            }
        }
    }
}

 

추가 질문이 있으면 대댓글로 부탁드립니다.

메리님의 프로필 이미지
메리

작성한 질문수

질문하기