🌟 조건문 개요
조건문은 프로그램이 특정 조건에 따라 다른 동작을 수행하도록 제어하는 구조입니다. 자바에서 조건문을 사용해 코드 흐름을 조절해서 다양한 상황에 맞게 동작하도록 할 수 있습니다. 자바에서 조건문은 크게 if문과 switch문으로 나눠지며, 처리할 조건식의 복잡도와 경우의 수에 따라 적절한 조건문을 선택하면 효율성과 가독성을 높일 수 있습니다.
🔑 조건문의 핵심
- 조건식 : 비교 연산자(>, <, ==, != 등)나 논리 연산자(&&, ||, !)를 이용해 조건을 평가하고, 결과에 따라 코드 블록이 실행됩니다.
- 조건문 종류 : if, if-else, if-else if, switch 등의 조건문을 사용해서 흐름을 제어할 수 있습니다.
📌 if문
if문은 가장 기본적인 형태의 조건문으로, 주어진 조건식이 true일 경우에만 블록 안의 코드가 실행됩니다. 조건식이 false일 경우, 코드 블록은 건너뛰게 됩니다. if문은 다음과 같이 조건식과 괄호로 이루어져 있습니다.
- 조건식 : if문의 조건식은 비교 연산자(>, <, ==, != 등)나 논리 연산자(&&, ||, !)를 사용해서 true 또는 false를 반환해야 합니다.
- 블록 : 중괄호{ }를 사용해서 여러 문장을 하나의 블록으로 묶습니다. 그리고 중괄호 다음에는 세미클론(;)을 붙이지 않습니다.
int number = 100;
if (number > 77) { // 블럭의 시작
System.out.println("number는 77보다 크다");
} // 블럭의 끝
📌 if-else문
if-else문은 조건식이 true일 때는 if 블록이 실행되고, false일 때는 else 블록이 실행되는 구조입니다. 두 블록의 내용이 모두 수행되거나, 모두 수행되지 않는 경우는 있을 수 없습니다.
int number = 3;
if (number > 5) {
System.out.println("number는 5보다 큽니다.");
} else {
System.out.println("number는 5보다 작습니다.");
}
📌 if-else if문
if-else if문은 여러 개의 조건을 순차적으로 검사하며, 조건이 맞는 첫 번째 블럭이 실행됩니다. 여러 경우의 수를 다뤄야 할 때 유용합니다.
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 학점입니다.");
}
📌 중첩 if문
if문 안에 또 다른 if문을 넣어 조건을 더욱 세분화할 수 있습니다. 이때 코드가 복잡해지므로, 중첩이 너무 깊어지지 않도록 주의해야 합니다. 아래 코드를 보면 내부 if문이 외부 if문보다 안쪽으로 들여 쓰기를 해서 두 if문의 범위가 명확히 구분될 수 있도록 작성해야 합니다. 그렇기 때문에 중첩 if문을 작성할 땐 괄호를 생략하면 안 됩니다.
int number = 10;
if (number > 5) {
if (number < 15) {
System.out.println("number는 5보다 크고 15보다 작습니다.");
}
}
📋 switch문
switch문은 하나의 조건식으로 여러 경우를 효율적으로 처리할 때 사용됩니다. 조건식의 결과에 맞는 case로 분기한 후 해당 case 코드가 실행됩니다. switch문은 코드가 간결하고, 여러 조건을 처리할 때 유용하지만, 특정 자료형에 대해서만 사용할 수 있다는 제약이 있습니다.
int day = 3;
switch (day) {
case 1:
System.out.println("월요일");
break;
case 2:
System.out.println("화요일");
break;
case 3:
System.out.println("수요일");
break;
case 4:
System.out.println("목요일");
break;
case 5:
System.out.println("금요일");
break;
case 6:
System.out.println("토요일");
break;
case 7:
System.out.println("일요일");
break;
default:
System.out.println("잘못된 요일입니다.");
}
🚨 break문의 중요성
switch문 내에서 각 case 블럭이 끝날 때마다 break를 사용해서 switch문을 종료해야 합니다. break를 사용하지 않으면 fall-through 현상이 발생해 그 이후의 모든 case가 실행됩니다. 의도적으로 사용하는 경우도 있지만, 대부분의 경우에는 의도하지 않은 오류를 방지하기 위해 break를 사용합니다.
char grade = 'B';
switch (grade) {
case 'A':
case 'B':
case 'C':
System.out.println("합격입니다.");
break;
case 'D':
System.out.println("재시험입니다.");
break;
default:
System.out.println("불합격입니다.");
}
🍀 default 사용
default는 모든 case에 해당하지 않을 때 실행되는 코드 블록입니다. 선택사항이지만, 예외적인 상황을 처리할 때 유용합니다.
int month = 13;
switch (month) {
case 1:
System.out.println("1월");
break;
case 2:
System.out.println("2월");
break;
// 생략
default:
System.out.println("잘못된 월입니다.");
}
🎯 switch문의 제약사항
switch문은 다음과 같은 제약이 있습니다.
- 조건식은 정수형, 문자, 문자열 등으로 제한됩니다.
- 각 case문의 값은 상수이어야 하며, 중복될 수 없습니다.
📊 if문과 switch문의 비교
조건문 | 적합한 경우 | 제약사항 |
if문 | 복잡한 조건식, 논리 연산이 필요한 경우 | 제약 없음 |
switch문 | 특정 값에 따라 분기처리(상수값만 가능) | 정수, 문자, 문자열만 조건식으로 사용 가능 |
- if문 : 복잡한 조건식과 논리 연산을 포함할 수 있어 유연하지만, 경우의 수가 많으면 가독성이 떨어질 수 있습니다.
- switch문 : 단순한 값 비교에 효율적이지만, 데이터 타입과 조건식에 제약이 있습니다.
🚀 결론
조건문은 프로그램 흐름을 제어하는 핵심적인 도구입니다. 다양한 경우를 처리할 때 if문과 switch문을 적절히 사용해서 프로그램을 효율적으로 작성할 수 있습니다. 각 조건문의 장단점을 잘 이해하고, 상황에 맞게 선택해서 사용하는 것이 중요합니다.
'🌈 프로그래밍 언어 > 자바' 카테고리의 다른 글
[Java] 자바 배열(Array) 개념 및 사용법 (0) | 2024.09.09 |
---|---|
[Java] 자바 반복문 - for, while, do-while 완벽 가이드 (0) | 2024.05.24 |
[Java] 자바 연산자 Operator 가이드 정리 (0) | 2024.05.13 |
[Java] 자바 변수 기본 가이드 라인 (0) | 2024.04.05 |
[Java] 자바 코드에서 주의할 점 (0) | 2023.03.27 |