< 산술연산자 >
- 이항연산자, 우선순위가 일반 수학 산술과 동일
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 |
% | 나머지 (모듈러 modular) |
int num1 = 10;
int num2 = 3;
System.out.println("num1 + num2 = " + num1 + num2);
// 결과값은? num1 + num2 : 103 (String + int + int = 문자열과 연산하여 문자열이 되어버림)
+, -의 경우, 괄호로 묶지 않으면 문자열과 연산되어 오류 발생!
*, /, % 연산자의 경우, 우선순위가 +, - 보다 높기 때문에 묶지 않아도 먼저 연산이 됨
단, 가독성을 위해 괄호를 사용할 것을 권장함
System.out.println(5 / 0);
// 정수를 0으로 나눌 수 없다!
// ArithmeticException: / by zero
< 증감연산자 >
- 단항연산자로 한 번에 1씩 증가(더하거나)하거나 감소(빼거나)하는 연산을 함
- 연산자의 위치에 따라 먼저 증감을 할 것인지, 나중에 증감을 할 것인지가 달라짐
[ 표현법 ]
++ : 값을 1씩만 증가시키는 연산자
-- : 값을 1만 감소시키는 연산자
[ 연산자의 위치 ]
- 전위연산 : ++값, --값 (먼저 값을 증가하고 그 값을 처리)
- 후위연산 : 값++, 값-- (값을 처리하고 나서 증가하거나 감소)
[ 후위연산 ]
int a = 10;
int b = a++;
System.out.println("a : " + a); // a : 11
System.out.println("b : " + b); // b : 10
// b라는 변수에 a값을 먼저 대입하고 (선 처리)
// a라는 값을 증가시킨다 (후 연산)
int c = 20;
int d = c--;
System.out.println("c : " + c); // c : 19
System.out.println("d : " + d); // d : 20
// d라는 변수에 c값을 먼저 대입하고 (선 처리)
// c라는 값을 감소시킨다 (후 연산)
int num1 = 20;
int result = num1++*3;
System.out.println("num1 : " + num1); // num1 : 21
System.out.println("result : " + result); // result : 60
// num1에 3을 곱해서 대입 (선 처리)
// num1값을 증가(후 연산)
< 복합대입연산자 >
- 다른 산술연산자와 대입연산자가 결합한 것
- 자기 자신과 해당 산술연산 후에 그 결과를 자기자신에게 덮어씌우는 것
+= | 덧셈 → 대입 |
-= | 뺄셈 → 대입 |
*= | 곱셈 → 대입 |
/= | 나눗셈 → 대입 |
%= | 나머지 → 대입 |
'개발 > Java' 카테고리의 다른 글
[Java] 자바 - if문 / if-else / if-else if (조건문) (0) | 2022.09.07 |
---|---|
[Java] 자바 - 논리부정연산자 / 비교연산자 / 논리연산자 / 삼항연산자 (0) | 2022.09.05 |
[Java] 자바 - 형변환(Type Casting) (0) | 2022.09.04 |
[Java] 자바 - 입력값 받기 (0) | 2022.09.04 |
[Java] 자바 - 상수 (0) | 2022.09.04 |