[JAVA] 연산자의 종류

2021. 9. 2. 16:40프로그래밍/JAVA

728x90
반응형

항과 연산자

항(operand) : 연산에 사용되는 값

연산자(operator) : 항을 이용하여 연산하는 기호

 

단항 연산자

항이 1개인 연산자

ex) ++num

 

이항 연산자

항이 2개인 연산자

ex) num1 + num2;

 

삼항 연산자

항이 3개인 연산자

ex) (2 < 3) ? 1: 0;

 

대입 연산자

변수에 값을 대입하는 연산자, 연산의 우선순위가 가장 낮음

왼쪽 변수(lvalue)에 오른쪽 변수(값)(rvalue)를 대입

ex) int num = 10; // num 변수에 값 10을 대입

 

부호 연산자

단항 연산자

양수/음수의 표현, 값의 부호를 변경

변수에 +, - 를 사용한다고 해서 변수의 값이 변하는 것이 아님

변수의 값을 변경하려면 대입 연산자를 사용해야 함

 

산술 연산자

사칙연산에 사용되는 연산자

ex) +, -, *, /, %

% : 나머지를 구하는 연산자 : 특정 범위 안의 수를 구할 때 사용

 

증가 감소 연산자

단항 연산자

1만큼 더하거나 1만큼 뺄 때 사용하는 연산자

항의 앞/뒤 위치에 따라 연산의 결과가 달라짐에 유의

ex) ++, --

val = ++num; // 먼저 num값이 1증가한 후 val 변수에 대입

val = num++; // val 변수에 기존 num 값을 먼저 대입한 후 num값 1 증가

 

관계 연산자

이항 연산자연산의 결과가 true(참), false(거짓)으로 반환됨

ex) >, <, >=, <=, ==, != 연산자를 통해 true나 false를 반환

 

논리 연산자

관계 연산자와 혼합하여 많이 사용됨

연산의 결과가 true(참), false(거짓)으로 반환됨

ex) &&, ||, !

&& : 두 항이 모두 참인 경우에만 true, 아니라면 false // booleanval = (3 > 2) && (3 > 1);

|| : 두 항 중 하나의 항만 참이면 true, 두 항 모두 거짓이면 false // booleanval = (3 > 2) || (3 < 1);

! : 단항 연산자, true인 경우 false로 바꾸고, false이라면 true로 바꿈 // booleanval = !(3 > 2);

 

단락 회로 평가

&&은 두 항이 모두 true일 때만 결과가 true // 앞의 항이 false이면 뒤 항의 결과를 평가하지 않아도 false

||은 두 항이 모두 false일 때만 결과가 false // 앞의 항이 true이면 뒤 항의 결과를 평가하지 않아도 true

 

복합 대입 연산자

대입 연산자와 다른 연산자를 함께 사용

프로그램에서 자주 사용하는 연산자

ex)

+= : 두 항의 값을 더해서 왼쪽 항에 대입 // num1 += 2; // num1 = num1 + 2; 와 같음

-= : 왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입

*= : 두 항을 곱해 왼쪽 항에 대입

/= : 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입

%= : 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입

 

조건 연산자

삼항 연산자

조건 식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 식이나 결과가 수행됨

제어문 중 조건문을 간단히 표현할 때 사용할 수 있음

 

조건식 ? 결과 1: 결과 2;

-> 조건식이 참이면 결과1, 조건식이 거짓이면 결과2가 반환

ex) int num = (3 > 2) ? 10 : 20; // 10

 

비트 연산자

정수에만 사용할 수 있음

 

~ : 비트의 반전(1의 보수)

ex) a = ~a;

 

& : 비트 단위 AND

ex) 1 & 1 // 1 반환 그 외는 0

 

| : 비트 단위 OR 

ex) 0|0 // 0 반환 그 외는 1

 

^ : 비트 단위 XOR

두 개의 비트가 서로 다른 경우에 1을 반환

 

<< : 왼쪽 shifta<<2 // 변수 a를 2비트 만큼 왼쪽으로 이동

ex) 정수 15가 왼쪽 2자리 이동한 경우(15 << 2) // ※ 2의 2승을 곱한 값과 동일

00000000 00000000 00000000 00001111 // 15

00000000 00000000 00000000 0000111100 // 60  

 

>> : 오른쪽 shifta>>2 // 변수 a를 2비트 만큼 오른쪽으로 이동

 

>>> : 오른쪽 shift채워지는 비트가 부호와 상관 없이 0

 

 

 

 

728x90
반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] this란?  (0) 2021.09.09
[JAVA] 정보은닉(information hiding)  (0) 2021.09.08
[JAVA] 객체지향 프로그래밍과 클래스  (0) 2021.09.08
[JAVA] 반복문의 종류  (0) 2021.09.04
[JAVA] 조건문의 종류  (0) 2021.09.03