쉽게 쉽게

연산자 본문

개발공부/Java

연산자

곱마2 2023. 3. 14. 10:36
반응형

이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다.


1. 연산자란

'연산을 수행하는 기호' (+, -, *, / 등)

2. 피연산자란

피연산자는 연산자의 작업 대상(변수, 상수, 리터럴, 상수, 수식)

리터럴이란?

더보기

리터럴은 데이터 그 자체를 뜻 한다. 변수에 넣는 변하지 않는 데이터를 의미한다.

int a = 1;

int 앞에 a는 변수이고, 여기서의 1은 리터럴이다.
즉, 1과 같이 변하지 않는 데이터(boolean, char, double, long, int, etc…)를 리터럴(literal)이라고 부른다.

★ 연산자 우선 순위  

연산자 우선순위는 괄호의 우선순위가 제일 높고, 산술 > 비교 > 논리 > 대입의 순서이며, 단항 > 이항 > 삼항의 순서이다.

연산자의 연산 진행방향은 왼쪽에서 오른쪽으로 수행되며, 단항 연산자와 대입 연산자의 경우에는 오른쪽에서 왼쪽으로 수행된다.

3. 증감 연산자(+ +, - -)

(1) 증가 연산자(++) : 피연산자의 값을 1 증가시킨다

(2) 감소 연산자(--) : 피연산자의 값을 1 감소시킨다.

 전위형  j = ++i;  ++i;
 j = i 
값이 참조되기 전에 증가시킨다
 후위형  j = i++;   j = i
 i++; 
 값이 참조된 후에 증가시킨다.

전위형, 후위형의 예시를 하나 들어보면

int x = 10;
int y = x-- + 5 + --x;

System.out.println("x : "+ x + ", y : " + y);

//실행결과 x : 8, y : 23

① : 첫 번째 감소 연산자(decrement operator)는 피연산자의 뒤쪽에 위치하므로, 덧셈 연산이 먼저 수행된다.

② : 덧셈 연산이 수행된 후에 감소 연산이 수행된다. (x의 값 : 9)

③ : 두 번째 감소 연산자는 피연산자의 앞쪽에 위치하므로, 덧셈 연산보다 먼저 수행된다. (x의 값 : 8)

④ : 감소 연산이 수행된 후에 덧셈 연산이 수행된다.

⑤ : 마지막으로 변수 y에 결괏값의 대입 연산이 수행된다. (y의 값 : 23)

 

출처

http://www.tcpschool.com/java/java_operator_incAndDec

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

4. 산술 변환 연산자

(1) 이항 연산자는 두 피연산자의 타입이 일치해야 연산이 가능하다.
대부분의 경우, 두 피연산자의 타입 중에서 더 큰 타입으로 일치시키는데, 그 이유는 작은 타입으로 형변환하면 원래의 값이 손실될 가능성이 있기 때문이다.

 

산술 변환의 경우

  • 두 피연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
    ex) long + int -> long + long -> long
  • 피연산의 타입이 int보다 작은 타입이면 int로 변환된다.
    ex) byte + short -> int + int -> int

5. 논리 연산자(&&, ||, !)의 효율적인 연산

(1) OR(||)연산의 경우, 두 피연산자 중 어느 한 쪽만 '참'이어도 전체 연산결과가 '참'이므로 좌측 피연산자가 '참'이면, 우측 피연산자의 값은 평가하지 않는다.

(2) AND(&&)연산의 경우도 어느 한쪽만 '거짓'이어도 전체 연산결과가 '거짓'이므로 좌측 피연산자가 '거짓'이면, 우측 피연산자는 평가하지 않는다.

즉 좌측에 효율적인 피연산자를 입력하는 것이 유리하다.

6. 삼항 연산자

조건식? 식1 : 식2 //삼항연산자

조건이 참이라면 식1의 값이, 거짓이라면 식2의 값이 나타난다.

(1) 식1과 식2의 타입이 다른 경우 산술 변환이 발생한다.
ex)
"mod < 0.5 ? 0 : 0.5" 는 연산 과정에서
"mod < 0.5 ? 0.0 : 0.5" double 타입으로 통일된다.

7. 대입 연산자(=)

(1) 대입 연산자는 연산자들 중에서 가장 낮은 우선순위를 가지고 있기 때문에 제일 나중에 수행된다.
(2) 연산 진행 방향이 오른쪽에서 왼쪽이다.

x = y = 3

연산과정
1. y=3이 먼저 수행
2. x=3이 뒤에 수행

(3) 복합 대입 연산자
대입 연산자는 다른 연산자와 결합하여 사용될 수 있다.

 

잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다.

 

반응형

'개발공부 > Java' 카테고리의 다른 글

객체지향언어(캡슐화, 다형성)  (0) 2023.03.17
객체지향언어(특징, 추상화, 상속)  (1) 2023.03.16
배열  (0) 2023.03.14
변수  (0) 2023.03.13
자바의 특징  (0) 2023.03.12