[JAVA] 03 조건문 if / switch

 

[JAVA] 03 조건문 if / switch

조건문은 프로그램의 흐름을 제어하는 핵심 문법이다. 특정 조건에 따라 서로 다른 로직을 실행해야 할 때 사용하며, 실무 코드에서는 거의 모든 로직에 조건문이 포함된다.


1. 조건문이란

조건문은 조건식의 결과(true / false)에 따라 실행할 코드를 분기하는 문법이다. 조건식은 반드시 boolean 타입이어야 한다.


if (조건식) {
    // 조건이 true일 때 실행
}

2. if 문 기본 구조


int point = 80;

if (point >= 60) {
    System.out.println("통과");
}

OUTPUT


통과

조건이 true일 때만 블록 내부 코드가 실행된다. false이면 아무 것도 실행되지 않는다.


3. if - else 구조


int point = 50;

if (point >= 60) {
    System.out.println("통과");
} else {
    System.out.println("탈락");
}

OUTPUT


탈락

if는 true일 때, else는 false일 때 실행된다.


4. if - else if - else 구조


int score = 85;

if (score >= 90) {
    System.out.println("A");
} else if (score >= 80) {
    System.out.println("B");
} else if (score >= 70) {
    System.out.println("C");
} else {
    System.out.println("D");
}

OUTPUT


B

위에서부터 순서대로 검사하며, 처음으로 true가 되는 블록만 실행된다.


5. 조건식 작성 시 주의점

5.1 논리 연산 활용


int age = 25;
boolean isMember = true;

if (age >= 20 && isMember) {
    System.out.println("입장 가능");
}

AND, OR 연산을 통해 복합 조건을 표현할 수 있다.

5.2 중괄호 생략 주의


if (age >= 20)
    System.out.println("성인");
    System.out.println("입장 가능");

위 코드는 두 번째 줄이 조건과 무관하게 항상 실행된다. 가독성과 오류 방지를 위해 항상 중괄호 사용을 권장한다.


6. 중첩 if 문


boolean isLogin = true;
boolean isAdmin = false;

if (isLogin) {
    if (isAdmin) {
        System.out.println("관리자 페이지");
    } else {
        System.out.println("일반 사용자 페이지");
    }
}

OUTPUT


일반 사용자 페이지

중첩이 깊어질수록 가독성이 떨어진다. 실무에서는 메서드 분리로 복잡도를 낮춘다.


7. switch 문

switch는 하나의 변수 값을 여러 case와 비교할 때 사용한다. 정해진 값 비교에는 if보다 가독성이 좋다.


int menu = 2;

switch (menu) {
    case 1:
        System.out.println("회원 조회");
        break;
    case 2:
        System.out.println("회원 등록");
        break;
    case 3:
        System.out.println("회원 삭제");
        break;
    default:
        System.out.println("잘못된 선택");
}

OUTPUT


회원 등록

8. break와 fall-through


int num = 1;

switch (num) {
    case 1:
        System.out.println("one");
    case 2:
        System.out.println("two");
}

OUTPUT


one
two

break가 없으면 다음 case까지 실행된다. 이를 fall-through라고 한다.


9. switch 표현식 (Java 14+)

자바 14 이상에서는 switch를 표현식으로 사용할 수 있다.


int day = 2;

String result = switch (day) {
    case 1 -> "월요일";
    case 2 -> "화요일";
    default -> "기타";
};

System.out.println(result);

OUTPUT


화요일

-> 문법은 break가 필요 없고, 값을 직접 반환할 수 있어 가독성이 향상된다.


10. if 와 switch 선택 기준

  • 범위 조건 (>=, <= 등) → if
  • 논리 연산 포함 → if
  • 정해진 값 비교 → switch
  • 열거형(enum) 분기 → switch가 적합

11. 실무 관점 정리

  • 조건식은 읽기 쉬워야 한다.
  • 중첩이 깊어지면 메서드 분리 고려.
  • switch는 상태 코드, 메뉴 처리에 적합하다.
  • 삼항 연산자는 간단한 분기에만 사용한다.

정리

  • 조건문은 프로그램 흐름 제어의 핵심이다.
  • if는 범위와 논리식에 강하다.
  • switch는 값 분기에 가독성이 좋다.