✅ 01. 연산자
가. 연산자란?
자바에서 연산자는 특정한 작업을 수행하기 위해 사용되는 기호 또는 키워드입니다. 연산자는 하나 이상의 피연산자(operand)에 대해 작동하며, 이러한 피연산자들을 이용하여 계산이나 조작을 수행합니다. 자바에서는 다양한 종류의 연산자가 있습니다.
 
 
나. 부호/증감 연산자 
부호 연산자
부호 연산자는 변수의 부호를 유지하거나 변경한다.

(출처- 7편. 연산자 (2) (hexabrain.net))




증감 연산자 (※ 시험에서 가장많이 틀리는 부분  )
증감 연산자 (++, --)는 변수의 값을 1 증가시키거나 1 감소시키는 연산자이다.

(출처- 7편. 연산자 (2) (hexabrain.net))

 

증감연산자 같은 경우에는 자격증 시험에서 거의 90% 출제되는 중요한 연산자입니다. (TMI : 항상 시험볼 때 글쓴이는 맨날 실수해서 틀리는 부분입니다,..또ㅓ로로ㅗㄱ... 이번에 공부하면서 완벽하게 숙지합시다!)
 
 

아니 더하기빼기가 앞에 있든 뒤에 있든 결과는 똑같아야지 뭔....;;

 
 
 
 
 
실행결과를 분석해본 결과 변수값(x,y)는 같은 초기값인 1을 할당받았습니다. 그런데 결과값은 x=12. y=11 로 각각 다르게 나왔는데,  이유는 증감 연산자가 앞에있을때와 뒤에 있을때의 반환값이 다르기 때문입니다.
 
 
전위 증감 연산자(prefix increment/decrement operator)

변수를 먼저 증가시키거나 감소시킨 후, 해당 변수를 사용합니다. (++x :  x를 1 증가시킨 후에 그 값을 사용합니다.)

 

후위 증감 연산자(postfix increment/decrement operator)

변수의 값을 사용한 후에 증가시키거나 감소시킵니다.  (y++ :  y의 현재 값을 사용한 후에 y를 1 증가시킵니다.) 
 
전위 증감 연산자는 즉시 증가한값을 반영합니다. 

초기 변수 x=1; 에 ++x 를 사용하였기 때문에 현재 x의 값은 2로 반영이되어서 result1의 결과값이 2+10 가 되어서 12로 출력되었습니다.


후위 증감 연산자는 증가하기 전에 초기 변수값을 우선 출력한뒤에 다음번 출력에서 증가한값을 반영합니다. 

초기 변수 y=1;에 y++를 사용하였기 때문에 y의 값은 1로 반영이 되어있어 result2의 결과값이 1+10 가 되어 11로 출력되었습니다. 
 

 

이처럼 y의 값이 다음 출력때 증가했는지 확인해보기 위해서는 중간에 한번더 result2 값이 출력되게 정의 하면 Console에서 y의 값이 증가한것을 확인할수있다! 
 
 
 
 

다음은 조금 심화버전으로 코드를 작성해서 완벽하게 숙지해보자 

package ch01;

public class IncreaseDecrease {

	public static void main(String[] args) {
		int x = 10;
		int y = 10;
		int z;

		x++;
		++x;
		System.out.println("x= " + x);

		System.out.println("------------------------"); // 1

		y--;
		--y;
		System.out.println("y= " + y);

		System.out.println("------------------------"); // 2
		
		z = x++;
		System.out.println("z= " + z);
		System.out.println("x= " + x);
		System.out.println("------------------------"); // 3
		
		z = ++x;
		System.out.println("z= " + z);
		System.out.println("x= " + x);
		System.out.println("------------------------"); // 4
		
		z = ++x + y++;
		System.out.println("z= " + z);
		System.out.println("x= " + x);
		System.out.println("y= " + y); //5
	}

}

 
1번째 출력
x에 대한 전,후위 증감 연산자를 사용해서 12가 출력되었다.
 
2번째 출력
x에 대한 전,후위 감소 연산자를 사용해서 8이 출력되었다.
 
3번째 출력
z = x++; 에서 x에 대한 후위 증감 연산자가 사용되어서 우선 z= 12 로 x에 대한 값이 반영이 되지 않고, 바로 출력되었다.(현재 x=12 이기때문에 z=12라는 값이 나왔다.)
그러나, 다음에 출력될때는 x값의 증가값이 반영되어(z=12+1 = 13) 으로 출력된다.
 
4번째 출력
z = ++z; 에서 x에 대한 전위 증감 연산자가 사용되어서 즉시 z에 증가한 x값이 반영되어야한다. 3번째 출력에서 z=13이라는 값으로 초기화 되어있으므로, z = 13+1 =14 이라는 값이 출력되었다.
x 또한, 3번째 출력에서 13으로 증가되었기때문에 x= 13+1 = 14 이라는 값이 출력되었다.
 
5번째 출력
z = ++x + y++; 이기때문에  15+8 =23 이 출력되었다.
x 값은 4번째 출력에서 14로 증가하였고, z에서 전위 증감 연산자가 선반영되어서, 15로 출력되었다.
y 값은 2번째 출력에서 8로 감소하였고 , 마지막에  y++ 가 반영되어서 8+1=9 라는 값이 출력되었다.
 
 
 
 

이제 진짜 시험에서 틀리면...그냥 틀리자 하하하하ㅏㅎ하핳

 
 
 
 
 
다. 비교 연산자
비교 연산자는 동등( ==, != ) 또는 크기 (<, <=, >, >=)를 평가해서 boolean 타입인 true/false를 산출한다. 비교 연산자는 흐름 제어문인 조건문(if), 반복문(for, while) 에서 실행 흐름을 제어할 떄 주로 사용된다.

출처 -&amp;nbsp; 7편. 연산자 (2) (hexabrain.net)

 

 

 
라. 논리 연산자
논리 연산자는 논리곱(&&), 논리합 (||), 배타적 논리합(^) 그리고 논리 부정(!) 연산을 수행한다. 논리 연산은 흐름 제어문인 조건문(if), 반복문(for, while) 등에서 주로 이용된다.
 
 

출처 -&amp;nbsp; 7편. 연산자 (2) (hexabrain.net)

 


코드를 실행하면 'A'의 정수값은 65 이기 때문에 1번째 if 문이 실행되었고, int value = 6 은 2,3으로 나누었을때 나머지 값이 0이 되어서 3번째 if 문이 실행되었다!(오잉..AND 문으로 만들어도 되버리네;.. 숫자 바꿀껄)
따라서 출력값이 화면과 같이 출력되었다. 
 
 
 
마. 비트 논리 연산자
비트 논리 연산자는 bit 단위로 논리 연산을 수행한다. 0과 1이 피연산자가 되므로 2진수 0과 1로 저장되는 정수 타입(byte, short, int, long)만 피연산자가 될 수 있고, 부동 소수점 방식으로 저장되는 실수 타입(float, double)은 피연산자가 될 수 없다.

출처 -&amp;nbsp; 7편. 연산자 (2) (hexabrain.net)

 
 
 
바. 비트 이동 연산자
비트 연산자에는 논리 연산자 외에도 이동 연산자가 있다. 비트 이동 연산자는 비트를 좌측 또는 우측으로 밀어서 이동시키는 연산을 수행한다.

출처 -&amp;nbsp; 7편. 연산자 (2) (hexabrain.net)

 
 

 
int num1 = 1이라는 변수를 선언하고 초기화했습니다.
int result = num1 << 3; 이라는 변수를 선언하고 초기화했습니다.
실행결과는 다음과같습니다.
 
1. 1을 비트연산자로 표기한다. 1 → 0000 0001
2. 왼쪽 시프트 연산자로 인해 3만큼 이동한다  0000 0001 → 0000 1000
3.  int로 변수를 선언했기 때문에 비트값을 정수형으로 변환한다. 0000 1000 → 8
4. 8이 출력된다.
 
 
 
사. 대입 연산자
대입 연산자는 우측 피연사자의 값을 좌측 피연사자인 변수에 대입한다. 우측 피연산자에는 리터럴 및 변수, 그리고 다른 연산식이 올 수 있다.

출처 -&amp;nbsp; 7편. 연산자 (2) (hexabrain.net)

 

 
아. 삼항 (조건) 연산자
삼항 연산자(피연산자? 피연산자: 피연산자)는 총 3개의 피연산자를 가진다. ? 앞의 피연산자는 boolean 변수 또는 조건식이 오므로 조건 연산자라고도 한다. 이 값이 true 이면 콜론(:) 앞의 피연산자가 선택되고, false이면 콜론 뒤의 피연산자가 선택된다.

 
 
02. 연산자 우선순위
연산자는 우선순위가 정해져 있다. 다음은 연산자의 연산 방향과 우선순위를 정리한 표이다.

출처 -&amp;nbsp; 7편. 연산자 (2) (hexabrain.net)

 
나 같은 경우에는 머리가 꽃밭이라서 외우면 맨날 까먹는다. 그래서 앞글자만 따서 삼국지를 좋아해서 대입해서 외웠다. (실제로 이걸로 자격증 시험문제 한개 맞췄다..ㅋㅋ)

 

 
순서는 다음과 같다.
 
단항 연산
산술연산
시프트연산
관계 연산
비트 논리 연산
논리 연산
조건 연산
대입 연산
 
여기서 앞글자만 따서 외웠다.
 
순하게 외워보자

(신)령이
우와
한테
을 줬는데
조가
들었다.
 
 

쓰고 나니 쪽팔리긴한데.. 나때문에 한문제맞춤 아무튼 맞춤ㅋㅎㅎ

 
 
 
이상 연산자에 대해 공부했다. (휴 열공했다ㅎ)

'Java' 카테고리의 다른 글

05. Java - 참조 타입(1)_변수편  (3) 2024.05.02
04. Java - ★조건문과 반복문★  (1) 2024.04.30
02. Java - 변수와 타입  (1) 2024.04.29
01. Java - 자바 코드의 구조  (1) 2024.04.29
00. Java - 공부에 들어가기전에  (1) 2024.04.29
2024. 4. 29. 15:58