학습
Java 조건부 연산자
Java 조건부 연산자 — 초급
조건부 연산자
1. 도입 (왜 배워야 하는가)
조건부 연산자는 프로그래밍에서 매우 중요한 개념 중 하나입니다. 실무에서는 다양한 상황에서 특정 조건에 따라 프로그램의 흐름을 제어해야 할 필요가 많습니다. 예를 들어, 사용자가 로그인했는지 여부에 따라 다른 화면을 보여주거나, 장바구니에 상품이 있는지 확인하여 결제 버튼을 활성화하는 등의 작업이 이에 해당합니다. 만약 조건부 연산자를 제대로 사용하지 못하면 코드의 가독성이 떨어지거나, 복잡한 if-else 문으로 인해 코드가 난해해져 유지보수가 어렵게 됩니다.
2. 핵심 개념 설명
조건부 연산자는 주어진 조건이 참인지 거짓인지에 따라 서로 다른 값을 반환하는 연산자입니다. Java에서는 주로 ? : 형태로 사용됩니다. 이를 실생활에서 비유해보면, "비가 오는 날에는 우산을 챙기고, 그렇지 않으면 선크림을 바른다"와 같은 조건문으로 설명할 수 있습니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| 조건식 | 참과 거짓을 판단하는 표현식 |
| 참일 때 값 | 조건식이 참일 경우 반환되는 값 |
| 거짓일 때 값 | 조건식이 거짓일 경우 반환되는 값 |
3. 기본 코드 예제
아래는 조건부 연산자의 기본적인 사용법을 보여주는 코드입니다.
public class Main {
public static void main(String[] args) {
int score = 85;
String result = (score >= 60) ? "합격" : "불합격"; // 점수가 60 이상이면 "합격", 아니면 "불합격"
System.out.println(result); // 결과 출력
}
}
실행 결과
합격
코드 한 줄씩 동작 설명
int score = 85;- 변수score에 85를 할당합니다.String result = (score >= 60) ? "합격" : "불합격";-score가 60 이상인지 확인합니다. 조건이 참이므로"합격"이result에 저장됩니다.System.out.println(result);-result변수의 값을 출력합니다.- 이 코드는 장바구니에 상품이 있는지 확인하여 적절한 메시지를 출력합니다.
- 사용자가 로그인했는지를 체크하여 환영 메시지를 출력합니다.
- 이 코드는
score에 60을 대입하게 되며, 조건식이 항상 참이 됩니다. - 숫자와 문자열을 비교하여 오류가 발생합니다.
- 조건부 연산자는 프로그램의 흐름을 제어하는 데 필수적입니다.
- 간단한 구문으로 조건에 따라 다른 값을 반환할 수 있습니다.
- 실무에서 자주 사용되는 패턴을 통해 조건부 연산자의 활용도를 높일 수 있습니다.
4. 실전 활용 예제
예제 1: 쇼핑몰에서 장바구니 확인
public class ShoppingCart {
public static void main(String[] args) {
int itemCount = 0; // 장바구니에 담긴 상품 수
String message = (itemCount > 0) ? "장바구니에 상품이 있습니다." : "장바구니가 비어 있습니다.";
System.out.println(message);
}
}
예제 2: 로그인 체크
public class LoginCheck {
public static void main(String[] args) {
boolean isLoggedIn = true; // 로그인 상태
String welcomeMessage = (isLoggedIn) ? "환영합니다!" : "로그인 해주세요.";
System.out.println(welcomeMessage);
}
}
5. 흔한 실수와 주의사항
실수 1: 조건식의 잘못된 사용
// 잘못된 코드
String result = (score = 60) ? "합격" : "불합격"; // '='는 대입 연산자
실수 2: 조건식의 타입 오류
// 잘못된 코드
String result = (score == "60") ? "합격" : "불합격"; // 문자열 비교는 잘못된 방법
6. 정리
다음에 학습하면 좋은 주제는 if-else 문과 switch 문입니다. 이 두 문은 조건부 연산자와 함께 자주 사용되며, 복잡한 조건을 처리하는 데 유용합니다.