본문 바로가기

하고 싶은 거 하는 개발/Java 프로그래밍 기초

[JAVA] 자바(JAVA) 비교 연산자에 대하여(+equals, boolean 타입)

728x90

지난 포스팅에서 연산자의 기초에 대하여 알아보았습니다. 

이번엔 비교 연산자에 대하여 알아보겠습니다.

 

 

2020/11/17 - [하고 싶은 거 하는 개발/Java 프로그래밍 기초] - [JAVA] 자바(JAVA) 연산자에 대하여

비교 연산자

비교 연산자는 프로그래밍을 할 때 주어진 값이 같은지 다른지, 어느 값이 더욱 크거나 작은지 확인하기 위해 사용합니다. 

비교 연산자의 결과는 true 혹은 false입니다. true는 비교 결과가 참이라는 것이고, false는 거짓이라는 뜻입니다. 

 

비교 연산자의 종류는 아래와 같습니다.

 

연산자 의미
== 좌측 값과 우측 값이 같다
!= 좌측 값이 우측 값이 같지 않다(다르다)
> 좌측 값이 우측 값보다 크다
< 좌측 값이 우측 값보다 작다
>= 좌측 값이 우측 값보다 크거나 같다
<= 좌측 값이 우측 값보다 작거나 같다

==

좌측 값과 우측 값이 같은지 확인하기 위해 사용합니다. 같다면 true가, 다르다면 false가 됩니다.

예시와 함께 자세히 알아보겠습니다. 

 

		System.out.println(1==1);
		System.out.println(1==0);

 

해당 코드의 출력 값은 무엇일까요?

 

 

위와 같이 출력되었습니다. 

 

true와 false로 출력되어 직관적으로 그 값이 동일한지 아닌지 알 수 있습니다.

 

여기서 주의해야 할 점은 '='이 하나가 아니라 두 개라는 것입니다. 

'='이 하나만 사용될 경우 우측 값을 좌측 값에 대입한다는 뜻으로, '=='와 의미가 전혀 다릅니다. 


!=

좌측 값과 우측 값이 다른지 확인하기 위해 사용합니다. '=='와 반대로 다르다면 true, 같다면 false입니다. 

		System.out.println(1!=1);
		System.out.println(1!=0);

 

결과는 아래와 같습니다.

 

 

'=='과 '!='은 정반대의 용도로 사용됩니다. 

따라서 출력된 결과도 반대로 출력되었습니다.


>

좌측의 값이 우측의 값보다 큰지 확인하기 위해 사용됩니다. 좌측 값이 우측 값보다 크다면 true, 그 외의 경우엔 false입니다.

 

		System.out.println(10>1);
		System.out.println(1>10);
		System.out.println(10>10);

 

결과는 아래와 같습니다.

 

 

10은 1보다 큰 값이므로 true가 출력되었습니다.(1행)

1은 10보다 작으므로 false가 출력되었습니다.(2행)

10은 10과 같으므로 false가 출력되었습니다.(3행)

 

'<'은 '>'와 반대이므로 생략하겠습니다.


>=

좌측의 값이 우측의 값보다 크거나 같은지 확인하기 위해 사용됩니다.

좌측 값이 우측 값보다 크거나 같다면 true, 그 외의 경우엔 false입니다.

 

		System.out.println(10>=1);
		System.out.println(1>=10);
		System.out.println(10>=10);

 

결과는 아래와 같습니다.

 

10은 1보다 큰 값이므로 true가 출력되었습니다.(1행)

1은 10보다 작으므로 false가 출력되었습니다.(2행)

10은 10과 같으므로 true가 출력되었습니다.(3행)

 

'<='은 '>='와 반대의 의미이므로 생략하겠습니다. 


문자열 비교

문자열을 비교하기 위해서는 연사자를 사용하는 것이 아닌 equals 메서드를 사용해야 합니다. 

 

		String a = "hello world!";
		String b = new String("hello world!");
		
		System.out.println( a == b );
		System.out.println( a.equals(b) );

 

결과는 아래와 같습니다.

 

 

변수 a와 b에 각각 문자열을 담고 '==' 연산자와 equals 메서드를 통해 비교했습니다.

결과는 각각 false, true가 출력되었습니다.

 

'==' 연산자는 두 개의 변수가 동일한 객체인지 비교합니다. 

new String으로 생성한 문자열의 경우, 새로운 객체가 생성되었기 때문에 '==을 통해 비교할 경우 false가 출력됩니다. 

 

반면에 'equals' 메서드는 비교 대상의 내용 자체를 비교하기 때문에 true가 출력되었습니다.

 

처음 자바를 공부하시는 분은 메서드와 객체가 무엇인지 잘 모르실 겁니다.

그러시다면 '문자열은 equals로 비교해야 하는구나' 하고 넘어가시고 후에 올라오시는 포스팅을 보시면 됩니다. 


boolean

추가로, 비교 연산자의 결과 값인 true와 false를 담을 수 있는 데이터 타입이 있습니다. 

 

바로 boolean입니다. 

 

불린 혹은 불리언(불리안)이라고 발음하는 이 데이터 타입은 아래와 같이 사용됩니다. 

 

		int a = 1;
		int b = 10;
		
		boolean c = a > b;
		
		System.out.println(c);

 

변수 a에 1을 저장하고 변수 b에 2를 저장한 후, '>' 연산자를 통해 비교한 값을 boolean 타입 변수 c에 저장했습니다.

그 후 c를 출력했습니다.

 

 

결과는 false가 출력되었습니다.

 

boolean 타입은 프로그래밍을 하실 때 참, 거짓을 판단하기 위해 자주 사용되는 데이터 타입입니다.

 

간단한 사용법에 비해 중요하게 사용되는 데이터 타입이므로 기억해주셔야 합니다.

 

혹시 데이터 타입에 대해 기억이 나지 않으시는 분은 아래의 포스팅을 확인하시면 됩니다.

 

2020/11/06 - [하고 싶은 거 하는 개발/Java 프로그래밍 기초] - [JAVA] 자바(JAVA) 데이터 타입(Data Type, 자료형)과 변수(Variable)에 대하여
반응형