dev._.note

[JAVA] 연산자(Operator) 본문

Dev/JAVA

[JAVA] 연산자(Operator)

Laena 2023. 2. 17. 21:25

연산자(Operator) 란?

연산자(Operator)는 주어진 변수나 리터럴에 대해 연산을 수행하기 위한 것이다. 연산자에 의해 처리되는 대상을 피연산자(Operator)라고 한다.
연산자는 대입 연산자, 산술 연산자, 비트 연산자, 비교(관계) 연산자, 논리 연산자 등으로 분류할 수 있다.

 


연산자의 종류와 우선순위


단항연산자

증감연산자(++, --)
** 단독사용시 : 증감연산자를 단독으로 사용할때는 전위/후위 모두 같은 연산 결과를 가짐
    예시)
        a++ / ++a → 결과같음.

        b-- / --b → 결과 같음.
        
--------------------------------------------------------------------------------------

** 다른 연산의 일부로 포함시 : 
    ▪ 전위연산 : 자신의 연산을 우선 실행 후 다음 연산
    	예시)
            int a = 10; 
            b = ++a; 
            System.out.println(a + ", " + b);

            → 결과 : 11, 11

    ▪ 후위연산 : 인접한 연산을 먼저 실행후 자신의 연산 실행
    	예시)
            int a = 10; 
            b = a++; → 인접한 연산을 마치고 증감 (b에 a값을 먼저 대입 후 a값증가(++))

            System.out.println(a + ", " + b);

            → 결과 : 11, 10

논리 부정 연산자(!)
논리값을 부정하여 반대 값으로 변경. 제어문을 활용할 때 많이 쓰임
true 를 false 로 false 를 true 로 변경하기 때문에 boolean 타입에만 사용가능

   boolean a = true;
   b =! a;

 

예제 1

public class Example {

	public static void main(String[] args) {

		boolean play = true;
	    System.out.println(play); // true

	    play = !play;
	    System.out.println(play); // false // !를 쓰면 반대로 부정

	    play = !play;
	    System.out.println(play); // true // !를 또 쓰면 false를 부정 true

	}
}

 

예제 2

public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 30;
		
		a++; // a = 11
		b = (--a) + b; // a 9 + b 20 = 29
	    c = (a++) + (--b); // a 11 + b 28 = 39
				
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
	}
}

결과 : 11, 29, 39

이항연산자

산술연산자( * ,  / ,  % )

*: 곱하기
/ : 나누기의 몫
% : 나누기의 나머지 값 

예시)
    int a = 10, b = 20, c = 0;`
    c = a * b;
    c = a / b; // 젯수가 0이면 에러 

    c = a % b;

    %와 /의 차이
    %는 좌항에서 우항을 나누고 남은 값 예) 5 / 2 = 2 에서 남은 값 1

산술연산자( + ,  - )

기본  수학에서  사용  더하기  빼기와  동일하고 연산의  우선순위도  동일

예시)
	int a = 10, b = 20, c = 0;

	c = a + b;
	c = a - b;

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

a > b ( a가 b보다 크다 )
a < b ( b가 a보다 크다 )
a >= b ( a가 b보다 크거다 같다 )
a <= b ( b가 a보다 크거나 같다 )

표현  :
    if(a < b){ } (만약에 a가 b보다 작다면 실행)
    a >= b ? a++ : b--;
    for(int a = 0; a <= b; a++){ }

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

제어문에서  데이터를  비교(조건식)할때  자주  쓰임 결과값은  논리값(true, false)

a == b : a와  b가  같으면  true

표현 :
    if(a == b){ }
    a == b ? a++ : b--;

-------------------------------------------------------------------------------

a != b : a와  b가  다르면  true

표현 :
    if(a != b){ }
    a != b ? a++ : b--;

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

논리값 두 개를 비교하는 연산자로 제어문에서 많이 사용.

a && b →  a, b 모두 true 일 때 true

    a가 true 면 b도 검사
    a가 false 면 b는 검사안함

-----------------------------------------------------

a || b →  a, b 하나라도 true이면 true

    a가 true 면 b는 검사안함
    a가 false 면 b도 검사

삼항연산자

조건식을 이용하여 결과값에 따라 연산을 처리하는 방식

[  조건식 ? true일때 실행코드 : false일때 실행코드  ]

예시) a = a < b ? a++ : a--;

이중  삼항  연산자도  가능
예시) a < b ? a-- : (b==0 ? a++ : b--);

비트연산자

자기자신과  연산한  결과를 자기자신에게  다시  대입

    A += 10 : A = A + 10 이랑  같은  의미

    A -= 10 : A = A – 10 이랑  같은  의미

    A *= 10 : A = A * 10 이랑  같은  의미

    A /= 10 : A = A / 10 이란  같은  의미

    A %= 10 : A = A % 10 이란  같은  의미

증감연산이랑  비슷해  보이지만  증감(++,--)는  1씩  증가하지만
대입연산자는  원하는  값을 증가시키고  그  변수에  저장할  수  있다.

 

'Dev > JAVA' 카테고리의 다른 글

[JAVA] 배열(Array)  (0) 2023.02.19
[JAVA] 제어문  (0) 2023.02.18
[JAVA] 출력 메소드(Print Method)  (0) 2023.02.06
[JAVA] 상수 (Constant)  (0) 2023.02.06
[JAVA] 변수(Variable)  (0) 2023.02.06