Java 연산자에 대한 이해

박현우·2023년 12월 19일

1. 연산자
1-1. 연산자

  • 프로그램에서 연산을 수행하기 위하여 사용되는 특수기호

1-2. 종류

  • 대입연산자
    : 변수에 숫자나 문자열 등의 자료를 입력하거나 연산결과를 다른 변수에 할당(=)
  • 사칙연산자
    : 더하기(+), 뺴기(-), 곱하기(*), 몫(/), 나머지(%)
  • 단항연산자
    : 변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용한다.
  • 증감연산자
    : 특정 변수에 저장되어 있는 값을 1씩 증가, 감소시킬 경우 사용한다.
  • 비교연산자
    : 두 개의 변수값 간의 관계를 비교하여 참(true), 거짓(false)의 관계를 반환
  • 논리연산자
    : 좌변과 우변을 논리연산하고, 참일 때는 true, 거짓일 때는 false를 반환
  • 삼항연산자

1-3. 사칙연산자

  • 더하기(+), 뺴기(-), 곱하기(*), 몫(/), 나머지(%)

  • 사칙연산의 결과는 대입연산자를 통하여 다른 변수에 대입될 수 있다.

  • 나눗셈

    	->10 / 3 : 나눗셈의 몫만을 취하여 결과값은 "3"이 된다.
    	->10 % 3 : 나눗셈의 나머지만을 취하여 결과값은 "1"이 된다.
  • 모든 수는 0으로 나눌 수 없다.

1-4. 단항연산자

  • 어떤 변수의 값에 대한 계산 결과를 다시 자기 자신에게 대입하고자 하는 경우의 약식 표현

    	int x = 100;
    	x = x + 5;
    
    	-> 단항연산자. 위 아래는 완전히 같은 표현.
    	int x = 100;
    	x + = 5;
  • 단항연산자는 모든 사칙 연산자에 표현 가능하다.

    	-> +=, -=, *=, /=, %=

1-5. 증감연산자

  • 단항연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우, 덧셈과 뺄셈에 대해서는 다시 한번 축약할 수 있다.

  • 덧셈의 경우

    	x = x + 1
    	x += 1; (단항연산자)
    	x++; (증감연산자)
    	++x; (증감연산자)
  • 뺄셈의 경우

    	x = x - 1;
    	x -= 1;
    	x--;
    	--x;
  • 곱셈의 경우

1-6. "x++"와 "++x"의 차이

  • 증감연산자는 그 자체가 다른 연산식의 피 연산자로 사용될 수 있다. 이 때, 증감연산자의 표시 위치에 따라 결과가 다르게 적용된다.

  • x++
    -> 증감연산자가 뒤에 표시되는 경우, 현재 x의 값을 먼저 수식에 적용하고, 나중에 x에 대한 1증가 처리를 한다.

    	int a = 100;
    	int x = 1;
    	int y = a + x++;
    	-> y = 100 + 1
    	-> y = 101, x = 2
  • ++x
    -> 증감연산자가 앞에 표시되는 경우, 먼저 현재 x의 값을 1증가 시킨 후, 그 결과를 수식에 적용한다.

    	int a = 100;
    	int x = 1;
    	int y = a + ++x;
    	-> 100 + 2
    	-> y = 102, x = 2

1-7. 비교연산자

  • 같다, 다르다, 크다(초과), 크거나 같다(이상), 작다(미만), 작거나 같다(이하)에 대한 비교를 수행하는 연산자

  • 같다 : ==

  • 다르다 : != *느낌표는 부정의 의미

  • 초과 : >

  • 이상 : >=

  • 미만 : >

  • 이하 : <=

  • 주어진 식이 참인지 거짓인지만 판별이 가능하므로, 연산 결과는 boolean 값으로 생성된다.

    	int x  = 100;
    	int y = 1;
    	boolean r = x 비교연산자 y; => true or false 가 결과값으로 나옴

1-8. 논리연산자

  • 두 개 이상의 비교연산자의 결과나 boolean 값에 대해 추가로 and나 or 연산을 수행하여 결과를 얻는다.
  • AND는 "&&" : 두 개이 boolean 값을 비교하여 모두 true인 경우에만 결과값이 true이다.
  • OR는 "||"(시프트 누르고 원화 키) : 두 개의 boolean값을 비교하여 둘 중 하나라도 true인 경우 결과가 true이다.

0개의 댓글