package operator;
public class Ex5 {
public static void main(String[] args) {
/*
* 비교 연산자(관계 연산자)
* - >, >=, <=, <, ==, !=
* - 두 피연산자 간의 대소관계 등을 비교하여, 결과값으로 true 또는 false 값 리턴
* => 결과값을 boolean 타입 변수에 저장하거나, 직접 사용 가능
* - 피연산자는 반드시 수치데이터여야한다!
*/
int a = 10, b = 5;
System.out.println("a > b 인가? " + (a > b)); // 10 > 5 이므로 true 가 리턴되어 출력됨
System.out.println("a >= b 인가? " + (a >= b));
System.out.println("a <= b 인가? " + (a <= b));
System.out.println("a < b 인가? " + (a < b));
System.out.println("a == b 인가? " + (a == b));
System.out.println("a != b 인가? " + (a != b));
System.out.println("---------------");
// char 타입 비교
// => 비교 연산 과정에서도 데이터타입간의 형변환이 일어남
// 즉, char 타입 비교 시 정수형태로 변환되어 유니코드값을 비교하게 됨
System.out.println('A' > 'B');
System.out.println('A' == 65);
// 주의! double 타입과 float 타입 연산 시 double -> float 타입으로 변환 후 비교하거나
// 정수형으로 변환하여 비교 후 다시 실수형으로 되돌리는 것이 안전함
System.out.println(0.1 == 0.1f); // false(근사치 표현에 의한 문제 발생!)
System.out.println((float)0.1 == 0.1f); // true(double -> float 타입으로 변환 후 비교)
}
}