자바의 삼항 연산자(Ternary Operator)는 조건식과 두 개의 값 중 하나를 선택하는 데 사용되는 간단한 형태의 조건문입니다. 삼항 연산자는 if-else
문을 간결하게 표현할 수 있어 코드의 가독성을 높여줍니다. 자바에서는 삼항 연산자를 ? :
구문으로 표현하며, 조건이 참인지 거짓인지에 따라 다른 결과를 반환합니다.
1. 삼항 연산자의 기본 구조
삼항 연산자는 다음과 같은 형식으로 사용됩니다:
조건식 ? 참일 때의 값 : 거짓일 때의 값;
- 조건식:
boolean
값을 반환하는 표현식입니다. - 참일 때의 값: 조건식이
true
일 때 반환되는 값입니다. - 거짓일 때의 값: 조건식이
false
일 때 반환되는 값입니다.
2. 삼항 연산자 사용 예
다양한 상황에서 삼항 연산자를 사용하는 몇 가지 예제를 통해 살펴보겠습니다.
예시 1: 간단한 조건 선택
가장 간단한 형태로, 삼항 연산자를 사용하여 숫자가 짝수인지 홀수인지를 확인할 수 있습니다.
public class TernaryOperatorExample {
public static void main(String[] args) {
int number = 10;
String result = (number % 2 == 0) ? "짝수" : "홀수";
System.out.println(number + "은 " + result + "입니다."); // 출력: 10은 짝수입니다.
}
}
위의 예시에서 (number % 2 == 0)
조건식은 true
또는 false
를 반환하며, 조건이 true
이면 "짝수"를, false
이면 "홀수"를 반환합니다.
예시 2: 최대값 찾기
삼항 연산자를 사용하여 두 숫자 중 더 큰 값을 선택할 수 있습니다.
public class MaxValueExample {
public static void main(String[] args) {
int a = 15;
int b = 20;
int max = (a > b) ? a : b;
System.out.println("더 큰 값은 " + max + "입니다."); // 출력: 더 큰 값은 20입니다.
}
}
위의 예시에서 (a > b)
조건식이 true
이면 a
를, false
이면 b
를 반환하여, 두 숫자 중 더 큰 값을 선택합니다.
예시 3: 조건에 따른 메시지 출력
삼항 연산자를 사용하여 조건에 따라 다른 메시지를 출력할 수 있습니다.
public class AgeCheckExample {
public static void main(String[] args) {
int age = 18;
String message = (age >= 18) ? "성인" : "미성년자";
System.out.println("당신은 " + message + "입니다."); // 출력: 당신은 성인입니다.
}
}
위의 예시에서 (age >= 18)
조건식이 true
이면 "성인"을, false
이면 "미성년자"를 반환합니다.
3. 삼항 연산자 중첩 사용
삼항 연산자는 중첩해서 사용할 수도 있습니다. 이는 여러 조건을 평가하고자 할 때 유용할 수 있지만, 코드가 복잡해질 수 있으므로 주의해서 사용해야 합니다.
예시 4: 중첩 삼항 연산자
여러 개의 조건을 평가하여, 조건에 따라 다른 값을 반환합니다.
public class NestedTernaryOperatorExample {
public static void main(String[] args) {
int score = 85;
String grade = (score >= 90) ? "A" :
(score >= 80) ? "B" :
(score >= 70) ? "C" :
(score >= 60) ? "D" : "F";
System.out.println("당신의 성적은 " + grade + "입니다."); // 출력: 당신의 성적은 B입니다.
}
}
위의 예시에서 중첩된 삼항 연산자를 사용하여 점수에 따라 성적을 결정합니다.
4. 삼항 연산자의 주의사항
- 가독성: 삼항 연산자는 코드가 간결해지는 장점이 있지만, 너무 복잡하거나 중첩된 삼항 연산자는 가독성을 떨어뜨릴 수 있습니다. 복잡한 조건은
if-else
문을 사용하는 것이 더 명확할 수 있습니다. - 반환 타입 일관성: 삼항 연산자의
참일 때의 값
과거짓일 때의 값
은 같은 타입이어야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다.
예시 5: 타입 일관성 주의
public class TypeConsistencyExample {
public static void main(String[] args) {
int num = 10;
// String result = (num > 5) ? "Number is greater than 5" : 100; // 컴파일 오류
String result = (num > 5) ? "Number is greater than 5" : "Number is less than or equal to 5";
System.out.println(result); // 올바르게 작동
}
}
위의 잘못된 예시에서는 삼항 연산자의 반환 값이 String
과 int
로 타입이 일치하지 않아 컴파일 오류가 발생합니다. 올바른 타입을 반환해야 합니다.
5. 삼항 연산자와 if-else
문 비교
삼항 연산자는 if-else
문을 간결하게 대체할 수 있습니다. 예를 들어, 다음의 if-else
문:
int num = 10;
String result;
if (num > 5) {
result = "Number is greater than 5";
} else {
result = "Number is less than or equal to 5";
}
위의 코드는 삼항 연산자를 사용하여 다음과 같이 줄일 수 있습니다:
String result = (num > 5) ? "Number is greater than 5" : "Number is less than or equal to 5";
삼항 연산자는 간단한 조건 평가와 변수 초기화 또는 대입에 매우 유용하며, 코드의 가독성과 간결성을 높이는 데 사용됩니다.
자바의 삼항 연산자를 적절히 활용하면 조건문을 더 간단하고 효율적으로 작성할 수 있습니다.
'언어 > Java' 카테고리의 다른 글
[ Java ] List 사용하기 (1) | 2024.06.13 |
---|---|
[ Java ] 자바 대입연산자 사용하기 (1) | 2024.06.09 |
[ Java ] 논리 연산자 사용하기 (0) | 2024.06.09 |
[ Java ] 비교 연산자 사용하기 (0) | 2024.06.09 |
[ Java ] 쉬프트 연산자 >>> 사용하기 (0) | 2024.06.09 |