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