[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는 값 분기에 가독성이 좋다.
'Computer Science > Java' 카테고리의 다른 글
| [JAVA] 05 배열(Array) (0) | 2026.02.15 |
|---|---|
| [JAVA] 04 반복문 for / while (0) | 2026.02.15 |
| [JAVA] DI(의존성 주입)란 무엇인가? (0) | 2026.02.15 |
| [JAVA]추상 클래스와 인터페이스 차이 (0) | 2026.02.15 |
| [JAVA] 업캐스팅과 다운캐스팅 (0) | 2026.02.15 |