2. 연산자 - (2) 단순 대입 연산자와 복합 대입 연산자

한승록·2023년 3월 27일
0

자바 기초

목록 보기
4/21
post-thumbnail

1) 단순 대입 연산자

'단순 대입 연산자(=)' 는 수학의 산술의 결과를 나타내는 의미와는 다르게 사용됩니다.
예를 들어 다음과 같은 코드를 보게되면
		int t1 = 10;			// 상수를 저장한다
		int t2 = t1;			// 변수를 저장한다
		int t3 = t2 + 5;		// 연산식의 결과를 저장한다
		int t4 = ran.nextInt();	// 함수실행 결과를 저장한다
해당 형태로 사용이 되며 값을 '저장' 한다는 의미를 가지고 있습니다.
즉, 'a = b' 일때 a 변수에 b변수가 가지고 있는 현재 '값을 복사하여 저장' 하는 것입니다.

해당 연산을 풀어서 설명하자면
 1) 우변의 값을 좌변의 공간에 복사하여 저장한다
 2) 우변에 연산식이 있다면, 연산이 끝난후의 값을 저장한다
 3) 우변에 함수가 있다면, 함수를 실행한 결과가 나온 이후 저장한다
 4) 항상 오른쪽을 먼저 처리하며, 오른쪽에 결과가 정해지면 왼쪽에 담는다
로 이해할 수 있습니다.

해당 개념에서 다시 한번 더 강조드리지만

절대!!!

두 항이 '같다' 라고 이해하시면 안됩니다!!!


2) 복합 대입 연산자

다음은 '복합 대입 연산자''배정 대입 연산자' 라고도 하며 종류로는 '+=', '-=', '*=', '/=', '%=' 이 있습니다.
사용 방식은 아래와 같습니다.
		int n1 = 1;
		int n2 = 2;
		
        // 변수 = 변수 + 피연산자  => 변수 += 피연산자;
		System.out.println("(n1 = n1 + n2) => (n1 += n2)");
        
        // 변수 = 변수 - 피연산자  => 변수 -= 피연산자;
        System.out.println("(n1 = n1 - n2) => (n1 -= n2)");
        
        // 변수 = 변수 * 피연산자  => 변수 *= 피연산자;
        System.out.println("(n1 = n1 * n2) => (n1 *= n2)");
        
        // 변수 = 변수 / 피연산자  => 변수 /= 피연산자;
        System.out.println("(n1 = n1 / n2) => (n1 /= n2)");
        
        // 변수 = 변수 % 피연산자  => 변수 %= 피연산자;
        System.out.println("(n1 = n1 % n2) => (n1 %= n2)");
문법은 '변수 (복합 대입 연산자) 피연산자' 의 형태로 사용되며 연산 예시는 다음과 같습니다.
int result = 0;
		
		result += 10;
		System.out.println("result = " + result);

		result -= 5;
		System.out.println("result = " + result);

		result *= 2;
		System.out.println("result = " + result);

		result /= 5;
		System.out.println("result = " + result);

		result %= 5;
		System.out.println("result = " + result);

<※ 결과는 다음과 같습니다.>

복합 대입 연산자에서 값이 1씩만 증가하거나 감소하는 경우에 다른 식으로도 표현 할 수 있습니다.
'단항 증감 연산자' 는 1개의 변수에 대하여 작동하며 값을 '1'증가 시키거나 '1'감소 시킵니다.
이때 다른 작업 전 해당 값을 증가시키는 연산을 '전위' 라고 하며 다른 작업 후 해당 값을 증가시키는 연산을 '후위' 라고 합니다.
		int num = 10;
		System.out.println(++num);	// 전위, 전치 증가 연산	(먼저 증가, 이후 출력)
		System.out.println(num++);	// 후위, 후치 증가 연산	(먼저 출력, 이후 증가)
		System.out.println(num--);	// 후위 감소 연산			(먼저 출력, 이후 감소)
		System.out.println(--num);	// 전위 감소 연산			(먼저 감소, 이후 출력)

<※ 결과는 다음과 같습니다.>

profile
개발 학습

0개의 댓글