프로그래밍에서 if…else 구조는 불리언 테스트에 따라 어떤 코드 블록이 실행될지 결정합니다. 이는 Java에서 의사 결정을 위한 기초입니다.
예를 들어 숫자 점수에서 문자 등급 할당:
점수가 90 초과이면 등급 A
점수가 75 초과이면 등급 B
점수가 65 초과이면 등급 C
1. Java if (if-then) 문
if-then 문의 구문은:
if (condition) {
// 문장들
}
여기서 condition은 age >= 18 같은 불리언 표현식입니다.
condition이 true로 평가되면 문장들이 실행됩니다.
condition이 false로 평가되면 문장들이 건너뛰어집니다.
if 문 작동 방식
예제 1: Java if 문
class IfStatement {
public static void main(String[] args) {
int number = 10;
// 숫자가 음수인지 확인
if (number < 0) {
System.out.println("The number is negative.");
}
System.out.println("if 블록 밖의 문장");
}
}
class Main {
public static void main(String[] args) {
String language = "Java";
if (language == "Java") {
System.out.println("Best Programming Language");
}
}
}
출력
Best Programming Language
이 예제는 if 블록 내에서 두 문자열을 비교하는 것을 보여줍니다.
2. Java if…else (if-then-else) 문
if 블록은 테스트 표현식이 true일 때 실행되고, 그렇지 않으면 선택적 else 블록이 실행됩니다.
구문은:
if (condition) {
// true일 때 코드
} else {
// false일 때 코드
}
이 구조는 단일 결정이 두 개의 서로 다른 경로로 분기되도록 합니다.
if…else 문 작동 방식
예제 3: Java if…else 문
class Main {
public static void main(String[] args) {
int number = 10;
if (number > 0) {
System.out.println("The number is positive.");
} else {
System.out.println("The number is not positive.");
}
System.out.println("if…else 블록 밖의 문장");
}
}
출력
The number is positive.
if…else 블록 밖의 문장
number를 -5로 변경하면 결과가 뒤집혀 else 분기를 보여줍니다.
3. Java if…else…if 래더
if…else…if 체인은 각 조건을 순서대로 평가하여 조건이 true인 첫 번째 블록을 실행합니다. 일치하는 것이 없으면 마지막 else가 실행됩니다.
if (condition1) {
// 코드
} else if (condition2) {
// 코드
} else if (condition3) {
// 코드
} else {
// 기본 코드
}
이 패턴은 다중 분기에 이상적입니다.
if…else…if 래더 작동 방식
예제 4: Java if…else…if 문
class Main {
public static void main(String[] args) {
int number = 0;
if (number > 0) {
System.out.println("The number is positive.");
} else if (number < 0) {
System.out.println("The number is negative.");
} else {
System.out.println("The number is 0.");
}
}
}
출력
The number is 0.
number가 0으로 설정되어 앞의 두 조건이 모두 실패하므로 else 블록이 실행됩니다.
참고: Java의 삼항 연산자는 if…else…if의 간결한 형태를 제공합니다. Java 삼항 연산자 참조.
4. 중첩 if…else 문
중첩 if…else 블록은 계층적 의사 결정을 허용하며 여러 값 비교에 유용합니다.
예제 5: 세 수 중 가장 큰 수 찾기
class Main {
public static void main(String[] args) {
Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largest;
if (n1 >= n2) {
if (n1 >= n3) {
largest = n1;
} else {
largest = n3;
}
} else {
if (n2 >= n3) {
largest = n2;
} else {
largest = n3;
}
}
System.out.println("Largest Number: " + largest);
}
}
출력
Largest Number: 4.5
실제로는 값이 하드코딩된 상수가 아니라 사용자 입력, 파일, 네트워크 소스에서 오는 경우가 많습니다.