항(operand) :: 연산되는 값
연산자(operator) :: 항을 이용하여 연산하는 기호
항의 개수에 따른 구분
변수에 값을 대입하는 연산자.
int age = 24 ;
연산순위가 가장 낮아, 마지막에 계산 됩니다.
%는 나머지를 구하는 연산자
숫자 n의 나머지의 범위는 0 ~ (n-1)까지 입니다.
특정한 범위 안의 수를 구할 때 종종 사용합니다.
만약에 0 부터 49번까지의 수를 임의로 배정해주고 싶을 때
나머지 연산자를 이용할 수 도 있다.
증감연산자에서는 연산자가 위치가
변수의 앞에 있느냐, 뒤에 있느냐가 중요합니다.
int num = 10;
System.out.println(++num);
// 출력값은 11, ++을 연산해준 num 의 값
int num = 10;
System.out.println(num++);
// 출력값은 10, 먼저 출력을 해준 후 num의 값에 ++을 한다.
연산의 결과가 True / false 로 반환됩니다.
단락 회로 평가(Short circuit evaluation)
논리곱(&&)(= 참-참->참)은 두 항이 모두 참일 때만 참
이로 인해 앞의 항이 거짓이라면 뒤의 항은 계산하지 않는다.
num과 i를 출력 해보면 num의 값은 변해 있는데 i의 값은 변해있지 않습니다.
논리합(||)(= 거-거->거),은 두 항 모두 거짓일 때만 결과가 거짓
이로 인해 앞의 항의 결과 값이 참이면 뒤의 항결과는 평가 하지 않는다.
num과 i를 출력 해보면 num의 값은 변해 있는데 i의 값은 변해있지 않습니다.
int num = (5 > 3)? 10 : 20;
// (5 > 3) 이 참이면 10을 실행하고, 거짓이면 20을 실행하라!
** 비트연산자는 정수에서만 사용할 수 있습니다.
int num1 = 5 // 0 0 0 0 0 1 0 1
int num2 = 10 // 0 0 0 0 1 0 1 0
int result = num1 & num2; // 0 0 0 0 0 0 0
System.out.println(rusult);
---------
0
---
int num1 = 5 // 0 0 0 0 0 1 0 1
int num2 = 10 // 0 0 0 0 1 0 1 0
int result = num1 | num2; // 0 0 0 0 1 1 1 1
System.out.println(rusult);
---------
15 // 1+2+4+8
---
int num1 = 5 // 0 0 0 0 0 1 0 1
int num2 = 10 // 0 0 0 0 1 0 1 0
int result = num1 ^ num2; // 0 0 0 0 1 1 1 1
System.out.println(rusult);
---------
15
----------
int num1 = 10 // 0 0 0 0 1 0 1 0
int result = ~num1; // 1 1 1 1 0 1 0 1
int num = 15 ;// 0000 1111
System.out.println(num << 2); 0011 1100
---
60
---
// (num << n)은 num의 값에 2의 n승을 곱하는 결과값 같다.