22.03.12 비교연산자

Saparian·2022년 3월 12일
0

오늘의배움

목록 보기
30/53

비교연산자의 종류

비교연산자의 연산결과는 true, false 두종류 뿐이다.

피연산자의 타입이 다를 경우 자료형의 범위가 큰 쪽으로 형변환을 해서 비교한다.

대소비교연산자의 경우 참조형에는 사용할 수 없다.

대소비교 연산자
>, <, >=, <=,
대소비교연산자의 경우 참조형에는 사용할 수 없다.

등가비교 연산자
==, !=

	public static void main(String[] args) {
		System.out.printf("10 == 10.0f	\t %b%n", 10 == 10.0f);
		System.out.printf("'0'== 0		\t %b%n", '0'== 0);
		System.out.printf("'A'== 65	\t %b%n", 'A'== 65);
		System.out.printf("'A' > 'B'	\t %b%n", 'A' > 'B');
		System.out.printf("'A'+1 != 'B'	\t %b%n", 'A'+1 != 'B');
		}

/*
System.out.printf("10 == 10.0f	\t %b%n", 10 == 10.0f);		// true, 자료형의 범위가 큰쪽으로 형변환을 해서 연산한다
System.out.printf("'0'== 0		\t %b%n", '0'== 0);			// false, 48 == 0;
System.out.printf("'A'== 65	\t %b%n", 'A'== 65);			// true, 65 == 65;
System.out.printf("'A' > 'B'	\t %b%n", 'A' > 'B');		// false, 65 > 66;
System.out.printf("'A'+1 != 'B'	\t %b%n", 'A'+1 != 'B');	// false, 66 != 66;

*/
        

실수형의 비교연산

	public static void main(String[] args) {
		float f = 0.1f;
		double d = 0.1;
		double d2 = (double)f;
		
		System.out.printf("10.0 == 10.0f	%b%n", 10.0==10.0f);
		System.out.printf("0.1==0.1f	%b%n", 0.1==0.1f);
		System.out.printf("f = %19.17f%n", f);				// f = 0.10000000149011612
		System.out.printf("d = %19.17f%n", d);				// d = 0.10000000000000000
		System.out.printf("d2 = %19.17f%n", d2);			// d2= 0.10000000149011612
		System.out.printf("d==f	%b%n", d==f);				// false
		System.out.printf("d==d2	%b%n", d==d2);			// false
		System.out.printf("d2==f	%b%n", d2==f);			// true
		System.out.printf("(float)d==f	%b%n", (float)d==f);// true
	}

/*
float f = 0.1f;			// f에 0.0000000149011612로 저장된다.
double d = 0.1;			// d에 0.0000000000000001로 저장된다.		
*/

문자형의 비교

	public static void main(String[] args) {
		String str1 = "abc";
		String str2 = new String("abc");
		
		System.out.printf("\"abc\"==\"abc\" ? %b%n", "abc"=="abc");
		System.out.printf(" str1==\"abc\" ? %b%n", str1=="abc");
		System.out.printf(" str2==\"abc\" ? %b%n", str2=="abc");			// false, 객체가 다르기때문에 false로 출력이 된다.
		System.out.printf("str1.equals(\"abc\") ? %b%n", str1.equals("abc"));
		System.out.printf("str2.equals(\"abc\") ? %b%n", str2.equals("abc"));
		System.out.printf("str2.equals(\"ABC\") ? %b%n", str2.equals("ABC"));
		System.out.printf("str2.equalsIgnoreCase(\"ABC\") ? %b%n", str2.equalsIgnoreCase("ABC"));
	}

/*
문자를 비교할때는 항상 equals()를 사용하자
대소문자를 구별하지않고 비교하려면 equalsIgnoreCase()를 사용하자
*/

0개의 댓글