기타 연산자
▶ 삼항 연산자 (ternary operator)?
※ ternary : 셋으로 이루어져 있는
- 자바에서 유일하게 피연산자를 세 개나 가지는 조건 연산자입니다.
- 삼항 연산자는 if절의 문법을 한줄로 표현했다고 보시면 이해하시기 수월하실 것입니다.
if절 (조건문) > 링크
- 삼항 연산자의 문법
[ 조건식 ? 반환값1 : 반환값2 ]
- 물음표(?) 앞의 조건식에 따라 결과값이 참(true)이면 반환값 1을 반환하고, 결과값이 거짓(false)이면 반환값2를 반환합니다.
- 삼항 연산자 예시
public class Ternary{
public static void main(String[] args){
int num1=5, num2=7;
int result;
result = (num1 - num2 > 0) ? num1 : num2;
System.out.println("두 정수 중 더 큰 수는 " + result + "입니다.");
}
}
------------------------------------------------------------------------------
출력 결과
두 정수 중 더 큰 수는 7입니다.
- 예시를 보시면 result에는 삼항 연산자의 결과 값이 대입되고 있습니다.
- result = (num1 - num2 > 0) ? num1 : num2;를 풀어서 설명을 해드리겠습니다.
- (num1 - num2 > 0) ? num1 : num2;
- (num1 - num2 > 0) 맞나요? -> 예 : 아니오;
예 -> num1 / 아니오 -> num2 -> num1 - num2이 0보다 작기 때문에 아니오(false) -> num2
- result = num2;
▶ instanceof 연산자
※ instance : 경우, 요구 / (컴퓨터) 클래스를 복제한 것 (A a = new A();)
- 참조 변수가 참조하고 있는 인스턴스의 실제 타입을 반환해 줍니다.
해당 객체가 어떤 클래스나 인터페이스로부터 생성되었는지를 판별해 주는 역할을 합니다.
- instanceof 연산자의 문법
[ 인스턴스이름 instanceof 클래스또는인터페이스이름 ]
- instanceof 연산자는 왼쪽 피연산자인 인스턴스가 오른쪽 피연산자인 클래스나 인터페이스로부터 생성되었으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
- instanceof 연산자 예시
class A {}
class B extends A{}
public static void main(String[] args){
A a = new A();
B b = new B();
System.out.println(a instanceof A); //true
System.out.println(b instanceof A); //true
System.out.println(a instanceof B); //false
System.out.println(b instanceof B); //true
}
- A는 a 와 b를 둘다 포함하고 있지만 B는 b만 포함하고 있다고 생각하시면 됩니다.
- 위의 예제는 자바 클래스와 상속에 대한 내용을 보고 오신다면 금방 이해하실 수 있습니다.
- Java Class > 링크
- Java Extends > 링크
'Programing > JAVA' 카테고리의 다른 글
데이터 출력 변환 (null -> 0 / 0 -> null) (0) | 2022.11.30 |
---|---|
Java Control (조건문) (0) | 2021.07.19 |
Java Operator (비트 연산자) (0) | 2021.07.19 |
Java Operator (논리 연산자) (0) | 2021.07.19 |
Java Operator (비교 연산자) (0) | 2021.07.19 |