자바에서는 다음과 같은 조건문을 제공합니다:
if 문
if-else 문
if-else if-else 문
switch 문
조건이 참(true) 일 때만 코드를 실행합니다.
int score = 85;
if (score >= 80) {
System.out.println("합격입니다.");
}
조건이 거짓이면 코드 블록은 실행되지 않습니다.
조건이 참일 경우와 거짓일 경우를 나누어 처리합니다.
int score = 65;
if (score >= 70) {
System.out.println("합격입니다.");
} else {
System.out.println("불합격입니다.");
}
여러 조건을 차례로 검사할 수 있습니다.
int score = 92;
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("F학점");
}
위의 조건들은 위에서부터 순서대로 평가되며, 첫 번째로 참인 조건의 블록만 실행됩니다.
if 문 안에 또 다른 if 문을 포함할 수 있습니다.
int score = 95;
boolean isSubmit = true;
if (score >= 90) {
if (isSubmit) {
System.out.println("A+ 학점 (과제 제출 완료)");
} else {
System.out.println("A 학점 (과제 미제출)");
}
}
하나의 변수 값을 여러 경우(case)와 비교할 때 사용합니다. if-else보다 가독성이 좋고 효율적일 수 있습니다.
int day = 3;
switch (day) {
case 1:
System.out.println("월요일");
break;
case 2:
System.out.println("화요일");
break;
case 3:
System.out.println("수요일");
break;
default:
System.out.println("기타 요일");
break;
}
break를 생략하면 fall-through 현상이 발생하여 아래 코드도 실행됩니다.
default는 어느 case에도 해당하지 않을 때 실행됩니다.
Java 14부터는 switch 문을 표현식 형태로 사용할 수 있습니다.
String result = switch (day) {
case 1 -> "월요일";
case 2 -> "화요일";
case 3 -> "수요일";
default -> "기타 요일";
};
조건문에서 사용되는 조건은 반드시 boolean 타입이어야 합니다.
boolean isMember = true;
if (isMember) {
System.out.println("회원입니다.");
}
잘못된 예 (오류):
int x = 1;
if (x) { // 오류: int는 boolean이 아님
System.out.println("x는 참");
}
조건문 종류 |
설명 |
---|---|
if |
조건이 참일 때만 실행 |
if-else |
참일 때와 거짓일 때 각각 실행 |
if-else if |
여러 조건을 순차적으로 검사 |
switch |
특정 값과 일치하는 경우 분기 처리 |
nested if |
if문 안에 if문 사용 (복잡한 조건 처리) |
switch는 값이 정해진 경우(enum, 상수 등)에 적합
조건이 많거나 복잡한 논리가 필요한 경우 if-else if 사용
중첩된 조건은 &&, || 같은 논리 연산자를 활용해 단순화 가능
boolean 타입을 반환하는 메서드로 조건문을 깔끔하게 만들 수 있음
예시:
public boolean isAdult(int age) {
return age >= 18;
}
if (isAdult(20)) {
System.out.println("성인입니다.");
}