JAVA - 연산자

장동희·2023년 2월 13일
0

개념 정리

목록 보기
2/5

연산자

연산자 : 연산을 수행하는 기호
피연산자 : 연산자의 연산 수행 대상

연산자의 종류

연산자의 우선순위

  1. 산술 > 비교 > 논리 > 대입 : 대입은 제일 마지막에 수행됩니다.
  2. 단항(1) > 이항(2) > 삼항(3) : 단항 연산자의 우선순위가 제일 높습니다.
  3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행 방향은 왼쪽에서 오른쪽입니다

증감 연산자와 부호 연산자

증감 연산자

증가 연산자(++) : 피연산자의 값을 1 증가 시킵니다.
감소 연산자(--) : 피연산자의 값을 1 감소 시킵니다.


부호 연산자

'-' 는 피연산자의 부호를 반대로 변경합니다.
'+' 는 아무런 일도 하지 않습니다.(실제 사용X)

형변환 연산자와 자동 형변환

형변환 연산자

변수 또는 상수의 타입을 다른 타입으로 변환하는 것을 의미합니다.
(타입)피연산자

자동 형변환

기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환된다."

float f = 1234; => int 타입의 값을 float타입의 변수에 저장!
상대적으로 int 타입이 float 타입 보다 크기가 작기 때문에 가능합니다.

float f = (float)1234; => 사실 변수와 리터럴의 타입을 일치 시켜줘야 합니다.
우리가 보는 코드에는 형변환이 생략되어 있었습니다. 즉, 컴파일러에 의해 자동으로 형변환된 겁니다.

산술 변환

산술 변환 :

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

1. 두 피연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
long + int -> long + long => long
float + int -> float + float => float
double + float -> double + double => double

2. 피연산자의 타입이 int 보다 작은 타입 이면 int 로 변환된다.
byte + short -> int + int => int
char + short -> int + int => int
이는 int 보다 작은 타입이 계산을 통해 쉽게 범위가 넘어갈 수 있기 때문에 오버플로우가 발생해 정확한 계산값을 가져오지 못할 수 있어서 미리 큰 범위인 int 타입으로 변환시킨 후 계산하는 것입니다.

Math 클래스와 나머지 연산자

Math :

Math는 수학과 관련된 메서드를 가지고 있는 클래스 입니다.
메서드는 '특정한 기능을 수행하기 위해 코드로 작성된 단위!' 라고 생각하시면 됩니다.

round() : 실수를 소수점 첫 째자리에서 반올림한 정수를 반환합니다.
ceil() : 올림값을 double 형으로 반환합니다.
floor() : 내림값을 double 형으로 반환합니다.
abs() : int, double 기본형 모두 사용 가능하며 절대값을 얻습니다.

나머지 연산자 %

오른쪽 피연산자로 나누고 남은 나머지를 반환합니다.
나누는 피연산자는 0이 아닌 정수만 허용합니다.
부호는 무시됩니다.

비교 연산자와 문자열의 비교

비교 연산자

두 피연산자를 비교해서 true(참) 또는 false(거짓)를 반환합니다.

문자열의 비교

문자열 비교에는 == 대신 equals()를 사용해야 합니다.
equals : 비교하고자 하는 두 피연산자의 값 자체를 비교합니다.
== : 비교하고자 하는 두 피연산자의 주소값을 비교합니다.

논리 연산자와 비트 연산자

논리 연산자

비트 연산자


비트 연산자는 값을 비트 단위로 연산합니다.
따라서 0과 1로 표현이 가능한 정수형이나 형변환이 가능한 자료형만 연산이 가능합니다.

조건 연산자와 대입 연산자

조건 연산자

삼항 연산자 : 조건식 ? 반환값1 : 반환값2
조건식의 결과에 따라 연산결과를 달리할 수 있습니다.

대입 연산자

0개의 댓글