본문 바로가기
JAVA

JAVA_연산자

by haheaven 2021. 7. 15.

​* 연산자 : 연산을 수행하는 기호 

- 연산자 : 연산을 수행하는 기호(+ - * 등)

- 피연산자 : 연산자의 작업 대상 (상수, 변수..)

 

​* 연산자의 우선순위

- 산술  > 비교 > 논리 > 대입 , 대입은 제일 마지막에 수행

- 단항 > 이항 > 삼항, 단항 연산자의 우선순위가 이항 연산자보다 높음 

- 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽 -> 오른쪽 

 

 

 

 

1. 증감 연산자 : ++ --

- 피연산자에 저장된 값을 1 증가 또는 감소

전위형 : 값이 참조되기 전에 증가   

ex.  j = ++i;

                                           

후위형 : 값이 참조된 후에 증가

ex. j = i++;

                                           

 

 

 

 

 

2. 산술연산자 

    1) 사칙 연산자(+ - / * )   

  2) 나머지연산자(%)  ----> 나머지 값을 결과로 반환 

  int a = 13;

  int b = 2

 System.out.println(" a%b = " + a%b);     // 결과값 a % b = 1

 

 

 

 

 

 

 

 

2. 비교연산자 : 크고 작음과 같고 다름을 비교

 1) 대소비교 연산자 : <, >, <=, >=

 

 2) 등가비교 연산자 : ==, !=(다르면 true)

    ** 문자열 비교시 '=='연산자 대신 equals() 메소드 사용해야 함

 

 

 

 

 

 

3. 논리 연산자 :  &&(and) , ||(or) , !(not) - > 비교 연산자를 통한 연산이 2개 이상 필요할 때 사용함

1)  논리연산자 : &&, ||, !

- AND 연산자인 &&은 양쪽이 모두 같으면 true, 다르면 false

- OR 연산자인 ||은 어느 한쪽이 'true'여도 'true'로 반환 

 

 

 

 

 

 

4. 대입 연산자 : 우변의 값을 좌변에 저장 (+=, -=, *=, /= ....)

x = y =1;

y =1 ---> x = y 순서로 저장 

 

int a = 10;

int b = 20;

System.out.println("a += b : " + (a +=b));    // a = a+ b 과 같은 의미

System.out.println("a -= b : " + (a -=b));     // 위에서 a는 30으로 바뀜 a = a-b

System.out.println("a *= b : " + (a *=b));    // 10 * 20

System.out.println("a /= b : " + (a /=b));     //200 / 20

 

 

5. 비트 연산자 : &, |, ^, ~, <<, >>

- 비트 연산자는 피연산자를 비트단위로 연산

- 피연산자를 이진수로 표현했을 때의 각 자리를 아래의 규칙에 따라 수행한다.

&(AND) 연산자 : 피연산자 중 양쪽 값이 1이어야만 1, 아니면 0

|(OR) 연산자     : 피연산자 중 한쪽 값이 1이면, 1을 얻고, 그 외에는 0

^(XOR) 연산자 : 피연산자의 값이 서로 다를 때만 1, 아니면 0

 

 

 

 

6. 시프트 연산자 :  >> , << , >>> --> 오른쪽 또는 왼쪽으로 이동시켜 값 변화 줌

int a = 7; // 111

int b =2; // 10

int c = a >> b;   //1. ---> 오른쪽으로 2만큼 옮김(0111 -> 0001)

int d = a<<b;    //28 ---> 왼쪽으로 2만큼 옮김(0111-> 0001 1100)

즉,  x << n은 x * 2^n 

       x >> n은 x / 2^n

 

 

 

7. 삼항 연산자 : ? , : -- 하나의 조건을 정의하여 그 조건이 참일 경우 true , 거짓일 경우 false 나타내는 연산자

int n1 = 10;            int n2 = 20;            char result2;

result2 = (n1 += n1) == n2 ? 'O' : 'X';

System.out.println("result2 : " + result2);        // n1 += n1 =20 이므로 20 == 20 은 참이므로 O

 

 

 

 

 

참조 : 자바의정석(남궁성)

'JAVA' 카테고리의 다른 글

JAVA_배열(Array) 1  (0) 2021.07.27
JAVA_도형 만들기(반복문)  (0) 2021.07.25
JAVA_반복문(for, while, do-while)  (0) 2021.07.25
JAVA_반복문(if, switch)  (0) 2021.07.24
JAVA_기본 개념  (0) 2021.07.15

댓글