*비교 연산자
비교 연산자는 두 피연산자를 비교하는 데 사용되는 연산자이다.
주로 조건문과 반복문의 조건식에 사용되며, 연산 결과는 오직 ture와 false 둘 중 하나이다.
비교하는 피연산자의 타입이 서로 다를 경우에는
자료형의 범위가 큰 쪽으로 자동 형변환하여 피연산자의 타입을 일치시킨 후에 비교
대소 비교 연산자 < > <= >=
두 피연산자의 값의 크기를 비교하는 연산자이다. 참이면 true를, 거짓이면 false를 결과로 반환한다. 기본형 중에서는 boolean을 제외한 나머지 자료형에 다 사용할 수 있지만 참조형에는 사용할 수 없다.
비교연산자 | 연산 결과 |
> | 좌변 값이 크면, ture 아니면 false |
< | 좌변 값이 작으면, ture 아니면 false |
>= | 좌변 값이 크거나 같으면, ture 아니면 false |
<= | 좌변 값이 작거나 작으면, true 아니면 false |
등가비교 연산자 == !=
두 피연산자의 값이 같은지 또는 다른지를 비교하는 연산자이다. 대소 비교 연산자(<,>, <=,>=)와는 달리, 모든 자료형(기본형, 참조형)에 사용할 수 있다. 기본형의 경우 변수에 저장되어 있는 값이 같은지를 알 수 있고, 참조형의 경우 객체의 주소 값을 저장하기 때문에 두 개의 피연산자(참조 변수)가 같은 객체를 가리키고 있는지(주소 값이 같은지)를 알 수 있다.
기본형과 참조형은 서로 형 변환이 가능하지 않기 때문에 등가 비교 연산자(==,!=)로
기본형과 참조형을 비교할 수는 없다.
비교연산자 | 연산 결과 |
== | 두 값이 같으면, ture 아니면 false |
!= | 두 값이 다르면, ture 아니면 false |
‘=’는 변수에 값을 저장할 때 사용하는 ‘대입 연산자’이기 때문에 ‘==’로 두 값이 같은지 비교하는 연산자를 표현한다.
문자열의 비교
문자열을 비교할 때는, 비교 연산자 '==' 대신 equals()라는 메서드를 사용해야 한다.
문자열은 참조 자료형이므로 '=='는 주소 값이 같은 지 비교하게 되고, 문자열의 내용이 같은지 비교하기 위해서는 equals()를 사용하는 것이다.
String str = new String("abc");
// equals()는 두 문자열의 내용이 같으면 ture, 다르면 false를 결과로 반환
boolean result = str.equals("abc"); // 내용이 같으므로 result에 true가 저장됨
// 대소문자를 구별하지 않고 비교하고 싶으면, equals() 대신 equalsIgnoreCase()를 사용
논리 연산자
논리 연산자는 둘 이상의 조건을 ‘그리고(AND)’나 ‘또는(OR)’으로 연결하여 하나의 식으로 표현할 수 있게 해 준다.
II (OR결합) 피연산자 중 어느 한쪽이 true면 true를 결과로 얻는다.
&& (AND결합) 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다.
x | y | x||y | X&&y |
true | true | true | true |
true | false | true | false |
false | true | true | false |
false | false | false | false |
논리 부정 연산자 '!'
이 연산자는 피연산자가 true이면 false를, false면 true를 결과로 반환한다.
논리 부정 연산자’!’가 주로 사용되는 곳은 조건문과 반복문의 조건식이며, 이 연산자를 잘 사용하면 조건식이 보다 이해하기 쉬워진다.
!!true -> !false -> true
조건 연산자 (삼항 연산자)
조건 연산자는 조건식, 식 1, 식 2 모두 세 개의 피연산자를 필요로 하는 삼항 연산자이며, 삼항 연산자는 조건 연산자 하나뿐이다.
result = (x> y) ? x : y; // 괄호 생략 가능
result = (x > y) ? x: y;
-> result = ( 5 > 3) ? 5 : 3 ;
-> result = (true) ? 5 : 3; // 조건식이 true(참)이므로 연산결과는 5
-> result = 5;
대입 연산자
대입 연산자는 변수와 같은 저장공간에 값 또는 수식의 연산 결과를 저장하는 데 사용
System.out,println(x = 3); // 변수 x에 3이 저장되고
-> System.out.println(3); // 연산 결과인 3이 출력된다.
대입 연산자는 연산자들 중에서 가장 낮은 우선순위를 가지고 있기 때문에 식에서 제일 나중에 수행된다
복합 대입 연산자
op= | = |
i += 3; | i = i + 3; |
i -= 3; | i = i - 3; |
i *= 3; | i = i * 3; |
i /= 3; | i = i / 3; |
i %= 3; | i = i % 3; |
i <<= 3; | i = i << 3; |
i >>= 3; | i = i >> 3; |
i &= 3; | i = i & 3; |
i ^= 3; | i = i ^ 3; |
i | = 3; |
i *= 10 + j; | i = i * (10 + j); |
마지막 줄처럼, 대입 연산자의 우변이 둘 이상의 항으로 이루어져 있는 경우 ‘ i *= 10 + j;’를 ‘i = i * 10 + j;’와 같은 것으로 오해하지 않아야 한다.
결합된 두 연산자는 반드시 공백 없이 붙여 써야 한다.
'Server > 자바의정석' 카테고리의 다른 글
[Java 입문] 반복문(for, while, do-while) (0) | 2022.09.26 |
---|---|
[Java 입문] 조건문(If, If-else, If-else If, switch) (0) | 2022.09.26 |
[Java 입문] 연산자1 (0) | 2022.09.26 |
[Java 입문] 형변환 (0) | 2022.09.26 |
[Java 입문] 기본형과 참조형 (0) | 2022.09.25 |