본문 바로가기

언어/JAVA

5장 연산자

주어진 식을 계산하여 결과를 얻어내는 과정을 연산이라고 하며, 연산을 수행하는 기호를 연산자라고 한다.

  • 연산자(operator) : 연산을 수행하는 기호(+, -, *, /, %등)
  • 피연산자(operand) : 연산자의 작업 대상(변수, 상수, 리터럴, 수식)

연산자의 종류

종류 연산방향 연산자 우선순위
단항연산자 <- ++, --, +, ~,!,(형변환 캐스트 연산자) 높음
산술연산자 -> *, /, %
-> +, -
-> <<, >>, >>>
비교연산자 -> <, >, <=, >=, instanceof
-> ==, !=
논리연산자 ->  &
->  ^ 낮음
->  |
->  &&
->  ||
삼항연산자 ->  ?:
대입연산자 <- =, *=, /=, %=, +=, -=, <<=
>>=, >>>=, &=, ^=, !=

위의 표에서 같은줄의 연산자들은 우선순위가 같고, 이런 경우 연산 방향에 의해서 연산 순서가 정해진다.

우선순위는 기억해두는 것이 가장 좋겠지만 헷갈린다면 괄호'()'를 사용하면 된다. (우선순위가 높더라고 괄호를 먼저 연산한다.)

 

1. 단항연산자

단항연산자는 하나의 항을 대상으로 연산이 이루어지는 연산자이다.

 

★ 증감연산자(++, --)

값을 증가시키거나 감소시킨다. (상수는 불가능)

먼저 값을 증가/감소시키는 전위형(prefix)과 나중에 값을 증가/감소시키는 후위형(postfix)가 있다.

전위형은 미리 계산하고 나서 값을 넣는 것이고, 후위형은 줄이 끝난 뒤에 계산이 된다고 생각하면된다.

int i = 1, j = 1;
System.out.println(i++);
System.out.println(++j);
System.out.println("i = " + i + ", j = " + j);

결과값

5

6

i = 6 , j = 6

 

★ 부호연산자(+, -)

' - '부호는 반대로 변경한 결과반환.(음수 -> 양수 / 양수 -> 음수)

부호연산자는 boolean과 char를 제외한 기본형에만 사용할 수 있다.

int i = -10;
i = +i;
i = -i;

결과값

-10

10

 

비트연산자( |, &, ^, ~, >>, <<)

★ |  ( OR연산 )

두 수의 각 자리수가 하나라도 1이라면 1이다.

   0001

|  0101

= 0101

 

★ &  ( AND연산 )

두 수의 각 자리수가 둘다 1일 경우에만 1로 친다.  

    0001

& 0101

= 0001

 

★ ^  ( XOR연산 )

두 수의 각 자리수가 다른경우 1로 친다. 

   0001

^ 0101

= 0100

 

★ ~  ( NOT연산 )

각 자리수를 반대로 변환시킨다. (정수와 char형에서만 사용가능)

~0101 = 1010

 

★ <<, >> ( SHIFT연산 )

<<

이진수의 각자리를 왼쪽으로 n만큼 밀어주고 첫자리는 0으로 채워준다.
5<<2
-> 0101<<2
=010100

결과값은 010100 (숫자 20)가 된다.
>>

이진수의 각자리를 오른쪽으로 n만큼 밀어주고 밀면서 사라지는 자리수는 삭제한다.
5>>2
-> 0101>>2
=0001

결과값은 0001 (숫자 1)이 된다.

 

비교 연산자 (<, >, <=, >=, ==, !=)

★ <, >, <=, >=, ==, !=

두 피연산자를 비교하여 결과를 true, false로 반환한다.

==는 같은지 비교하고, !=는 다른지 비교한다.

 

논리 연산자 ( &&, ||, ! )

★ && 

true&&false == false

둘다 true일 경우에만 true를 나머지경우에는 false를 반환한다.

 

ex)

int a =3, b=3, c=2;

if(a==b && b!=c)

결과값 false

 

★ ||

true||false == true

둘 중 하나라도 true값이라면 true를 반환한다.

 

ex)

int a =3, b=3, c=2;

if(a==b && b!=c)

결과값 true

 

삼항연산자 (?:)

세개의 피연산자가 필요하며, 조건식, true반환값, false반환값 세가지가 삼항연산자의 피연산자이다.

 

(조건식) ? a:b

ex) String result = (a>0)? "true":"false"

 

대입연산자

대입연산자는 변수에 값 또는 수식의 결과를 저장하는데에 사용된다.

대입연산자 왼쪽에는 반드시 변수가 위치해야하고 오른쪽에는 리터럴이나 변수 또는 수식이 올 수 있다.

op= =
i += 3; i = i+3;
i -= 3; i = i-3;
i *= 3; i = i*3;
i /= 3; i = i/3;
i *= 10+j; i = i * (10+j);

 

참고

자바의 신

https://freestrokes.tistory.com/48

 

자바(JAVA) 연산자

자바(JAVA) 연산자 자바의 연산자에 대해서 알아보겠습니다. 1. 연산자 다음은 자바 연산자의 종류와 우선순위 입니다.  종류 연산방향 연산자 우선순위  단항연산자 ←  ++, --, +, ~, !, (형변환 

freestrokes.tistory.com

 

'언어 > JAVA' 카테고리의 다른 글

10장 상속  (0) 2021.10.19
9장 패키지 / 접근제어자  (0) 2021.09.21
8장 참조자료형  (0) 2021.09.21
6장 조건문 / 반복문  (0) 2021.09.19
4장 변수 / 기본 자료형  (0) 2021.09.10