JAVA/기초공부

[JAVA기초] 연산자 - 할당, 산술, 단항, 관계, 논리, 조건, 복합할당

SoU330 2024. 9. 18. 05:32

 

연산자

: 수식과 결합하여 필요한 연산 동작을 수행하도록 하는 기호

 

 

할당 연산자

기호 : =

의미 : 우변의 값을 계산하여 좌변의 변수에 할당

* 좌변에는 반드시 변수만 와야한다.

int kk, tt, pp; // 정수형 변수 선언
kk = 456785; // kk 에 값 할당
tt = pp = kk ; // kk 에 저장된 값을 pp와 tt에 할당

 

 

 

 

 

산술 연산자

: 산술 연산을 수행하기 위한 연산자

기호 : +, -, *, /, % 등 을 이용하여 사칙연산

int x = 100, y = 200;

int addValue = x + y;
int subtractValue = x - y;
int multiValue = x * y;
int divValue = x / y;
int modValue = x % y;

-> 각각의 연산 결과를 변수에 저장

 

 

 

 

 

단항 연산자

: 오퍼랜드를 하나만 취하는 연산자

부호 연산자

-a (오퍼랜드의 값의 부호를 반대로 취함)

증가 및 감소 연산자

++a, a++, --a, a-- (값을 1만큼 증가시키거나 감소시킨다.)

전위형과 후위형

++a : 전위형 (a 값을 1만큼 증가한 다음 증가한 값을 사용)

a-- : 후위형 (a 값을 사용한 다음 1만큼 증가)

사용목적 

산술 연산자보다 실행 속도가 빨라서 좋은 성능을 위해 사용됨.

int x = 100;
System.out.printf("x의 현재 값 = %d\n", (++x)); // 전위 증가 연산자인 경우

x = 200; // x를 200으로 초기화
System.out.printf("x의 현재 값 = %d\n", (x++)); // 후위 증가 연산자인 경우

-> 전위 증가 연산자인 경우에는 1이 더해진 후에 x가 사용되고, 후위 증가 연산자인 경우 x가 쓰인 후에 1이 더해진다.

 

 

 

 

 

 

관계 연산자

: 두 수치의 대소 비교나 문자형 자료의 대소(ASCII 코드 순서) 비교에 사용

결과는 ture, false 로 나타난다

관계 연산자 종류

a == b (a와 b가 같다)

a != b (a와 b가 같지않다)

a > b (a가 b보다 크다)

a < b (a가 b보다 작다)

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

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

a instanceof b (a 객체가 b 클래스의 인스턴스이다)

 

System.out.printf("%d > %d = %b\n",x,y,(x>y)); // false
System.out.printf("%d >= %d = %b\n",x,y,(x>=y)); // false
System.out.printf("%d < %d = %b\n",x,y,(x<y)); // true
System.out.printf("%d <= %d = %b\n",x,y,(x<=y)); // true
System.out.printf("%d == %d = %b\n",x,y,(x==y)); // false
System.out.printf("%d != %d = %b\n",x,y,(x!=y)); // true

 

 

 

 

 

논리 연산자

: 논리 형 자료의 연산을 하기 위한 연산자

논리 연산자 종류

&& (두 값 모두 참이면 참 and)

|| (두 값 중 하나의 값이라도 참이면 참 or)

! (참이면 거짓, 거짓이면 참 not)

int x = 30, y = 100, z = 10;
boolean resultA, resultB, resultC;

resultA = (x>y) && (y>z);
resultB = (x>y) || (y>z);
resultC = !(x>y) && (y>z);

 

 

 

 

 

 

 

조건 연산자

조건 ? 수식1 : 수식2 (조건이 참이면 수식1을 결과로, 거짓이면 수식2를 결과로)

int x = 100, y = 200;
int max = (x>y) ? x : y; // x가 y보다 크면 max를 x로, 아니면 max를 y로 저장
System.out.println(max); // 200

 

 

 

 

 

 

복합 할당 연산자

: 자바언어에서 변수의 값이 일정한 차이 또는 비율로 변화할 때 간편하게 사용하는 연산자

복합 대입 연산자 종류

x += y (x+y 의 값을 x 변수에 대입)

x -= y (x-y 의 값을 x 변수에 대입)

x *= y (x*y 의 값을 x 변수에 대입)

x /= y (x/y 의 값을 x 변수에 대입)

x %= y (x%y 의 값을 x 변수에 대입)

int x = 100;
x += 10;
System.out.println(x); // 110

x = 100;
x -= 10;
System.out.println(x); // 90

x = 100;
x *= 10;
System.out.println(x); // 1000

x = 100;
x /= 10;
System.out.println(x); // 10

x = 100;
x %= 10;
System.out.println(x); // 0