비교 연산자
피연산자의 타입이 다를 경우에는 비교 연산을 수행하기 전에 타입을 일치시킨다.
'A' == 65; // true ,1번
3 == 3.0; // true, 2번
0.1f == 0.1; // false, 3번
0.1f == (float)0.1; // true, 4번
1. 'A' (하나의 문자는 정수타입) 는 int 타입으로 변환되면서 65가 된 다음 65==65 이므로 true가 된다.
2. 3은 dobule 타입인 3.0으로 변환하여 3.0==3.0 이므로 true가 된다.
3. 0.1f, 부동소수점 방식을 사용하는 실수타입은 0.1을 정확하게 표현할 수 없을 뿐 아니라 float 타입과 double 타입의 정밀도 차이로 false가 나온다. 따라서 이를 해결하기 위해 4번과 같은 방법으로 강제 타입 변환 후 비교해야한다.
⭐️ equals()
문자열을 비교할 때는 동등 연산자 대신 equals()을 사용한다.
boolean result = str1.equals(str2); //문자열이 같은지 검사
boolean result = ! str.equals(str2); //문자열이 다른지 검사
'JAVA' 카테고리의 다른 글
참조 타입, 문자열 (0) | 2023.01.15 |
---|---|
switch문 (0) | 2023.01.07 |
증감연산자, 오버플로우와 언더플로우 (0) | 2022.12.18 |
패키지, 클래스 ,메소드 선언 & 변수와 연산 (0) | 2022.12.18 |
프로그래밍 언어와 자바 (0) | 2022.12.12 |