그냥
Published 2023. 1. 27. 23:52
[JAVA] 6. 연산자 JAVA 공부/기초 공부

연산자의 종류

연산자는 여러 종류의 연산을 위해 존재한다.

산술 연산자

연산자 설명
+ 왼쪽 피연산자와 오른쪽 피연사자를 더한다.
- 왼쪽 피연산자와 오른쪽 피연사자를 뺀다.
* 왼쪽 피연산자와 오른쪽 피연사자를 곱한다.
/ 왼쪽 피연산자와 오른쪽 피연사자를 나눈다.
% 왼쪽 피연산자와 오른쪽 피연사자를 나누고 나머지 값을 반환한다.

비교 연산자

연산자 설명
> 왼쪽 피연산자가 오른쪽 피연산자 보다 크면 참(true)을 반환한다. 아닐시  거짓(false) 반환
< 왼쪽 피연산자가 오른쪽 피연산자 보다 작으면 참(true)을 반환한다. 아닐시  거짓(false) 반환
>= 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 참(true)을 반환한다. 아닐시  거짓(false) 반환
<= 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같으면 참(true)을 반환한다. 아닐시  거짓(false) 반환
== 왼쪽 피연산좌와 오른쪽 피연산자가 같으면 참(true)을 반환한다. 아닐시  거짓(false) 반환
!= 왼쪽 피연산좌와 오른쪽 피연산자가 같지 않으면 참(true)을 반환한다. 아닐시  거짓(false) 반환

문자열 비교 

문자열을 비교할 때에는 equals() 메소드를 사용해야 합니다.

String str1 = new String("NEW");
String str2 = new String("NEW");
System.out.println(str1.equals(str2));

논리 연산자

연산자 설명
&&  논리식이 모두 참(true)이면 참(true)을 반환한다. (AND 연산)
|| 논리식중 둘중 하나라도 참(true)이면 참(true)을 반환한다. (OR 연산)
! 논리식이 참(true)이면 거짓(false)을 반환, 거짓(false)이면 참(true)을 반환한다. (NOT 연산)

ex) 5 < x  && x < 10 : x가 5보다 크고(그리고) x가 10보다 작다.

ex) i % 2 == 0 || i % 3 == 0 : i는 2의 배수 또는 3의 배수이다.

 

증감 연산자

연산자 설명
x++ 피연산자를 1 증가 시키고 해당 연산을 진행한다.
++x 해당 연산을 먼저 진행하고 피연산자를 1 증가 시킨다.
x-- 피연산자를 1 감소 시키고 해당 연산을 진행한다.
--x 해당 연산을 먼저 진행하고 피연산자를 1 감소 시킨다.

형변환 연산자

(타입)피연산자 변수 또는 상수의 타입을 다른 타입으로 변환 해준다.
double x = 32.9;
int y = (int)x; // double형인 x를 int형으로 변환후 y에 대입
System.out.println(y);

소수점 아래로는 반올림하지 않고 다 버린 정수 32가 y에 대입이 되어 출력된다.

System.out.println((char)48); // int to char
System.out.println((int)'0'); // char to int
System.out.println((float)48); // int to float

(char)48의 결과로는 아스키코드 48인 '0'이 나온다.

(int)'0'의 결과로는 '0'의 아스키코드인 48이 나온다.

(float)48의 결과로는 48.0이 나온다.

 

int x = 1_000_000;
int y = 5_000_000;
long z = x * y; // 결과값이 오버플로우
long z = (long)x * y; // 형변환시 옳은 값이 나온다.

 x는 10의 6 제곱 y도 10의 6 제곱이기에 둘이 곱하면 int의 범위를 넘어가기에 값이 오버플로우 된 값이 나온다.

따라서 x 또는 y를 long으로 형변환 해서 계산을 해야 알맞은 값이 들어간다.

산술 변환

연산 전에 피연산자의 타입을 일치시키는 것.

1. 두 피연산자의 타입을 같게 일치시킨다. (큰 타입으로 일치)

int (4 byte) + long (8 byte)

long (8 byte) + long (8 byte) = long (8 byte)

 

int (4 byte) + float (4 byte)

float (4 byte) + float (4 byte)  = float (4 byte) 

같은 크기이지만 float의 범위가 더 넓다.

 

double (8 byte) + float (4 byte) = double (8 byte)

double (8 byte) + double (8 byte) = double (8 byte) 

 

2. 피연산자의 타입이 int 보다 작은 타입이면 int로 변환한다.

byte (1 byte) + short (2 byte)

int (4 byte) + int (4 byte) = int (4 byte)

 

char (2 byte) + short (2 byte)

 int (4 byte) + int (4 byte) = int (4 byte)

 

삼항 연산자

조건식의 결과에 따라 연산결과가 달라진다.

int a = 1;
int b = 2;
System.out.println( (a>b)? a:b );

a가 b보다 크다는 거짓이기 때문에 b인 2가 출력된다.

 

 

 

 

대입 연산자

연산자 설명 예시
= 왼쪽 피연산자를 오른쪽 피연산자에 대입한다 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

대입 연산자와 다른 연산자를 하나로 축약할 수 있다.

 

연산자의 우선순위

'JAVA 공부 > 기초 공부' 카테고리의 다른 글

[JAVA] 8. 반복문  (0) 2023.01.30
[JAVA] 7. 조건문  (0) 2023.01.30
[JAVA] 5. 형변환  (0) 2023.01.24
[JAVA] 4. 화면에서 입력 받기  (0) 2023.01.23
[JAVA] 3. 상수, 리터럴  (1) 2023.01.23
profile

그냥

@Ticketpaper

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그