연산
: 데이터를 처리해 결과를 산출하는 것
- 연산자(operator) : 표시나 기호 ( +,-,*,== 등)
피연산자(operand) : 변수(x, y, result 등)
연산자 종류 |
연산자 |
피연산자 수 |
산출값 |
기능 설명 |
산술 |
+, -, *, /, % |
이항 |
숫자 |
사칙연산 및 나머지지 계산 |
부호 |
+, - |
단항 |
숫자 |
음수와 양수 부호 |
문자열 |
+ |
이항 |
문자열 |
두 문자열을 연결 |
대입 |
=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= |
이항 |
다양 |
우변의 값을 좌변의 변수에 대입 |
증감 |
++, -- |
단항 |
숫자 |
1 만큼 증가/감소 |
비교 |
==, !=, >, <, >=, <=, instanceof |
이항 |
boolean |
값의 비교 |
논리 |
!, &, |, &&, || |
단항, 이항 |
boolean |
논리적 NOT, AND, OR 연산 |
조건 |
(조건식)?A:B |
삼항 |
다양 |
조건식에 따라 A 또는 B 중 하나를 선택 |
비트 |
~, &, |, ^ |
단항, 이항 |
숫자, boolean |
비트 NOT, AND, OR, XOR 연산 |
쉬프트 | >>, <<, >>> | 이항 | 숫자 | 비트를 좌측/우측으로 밀어서 이동 |
* 단항 : ++x;
* 이항 : x + y;
* 삼항 : (sum>90) ? "A" : "B";
* boolean : boolean result = (x+y) < 5;
연산의 방향과 우선순위
: 프로그램에서는 연산자의 연산 방향과 연산자 간의 우선순위가 정해져 있다.
- 우선순위가 같은 연산자의 처리 순서는 연산의 방향에 따라 달라진다.
대부분 왼쪽에서 오른쪽으로 연산이 수행되지만
단항 연산자(++, --, ~, !), 부호연산자(+, -), 대입 연산자(=, +=, -+, ...)는 오른쪽에서 왼쪽으로 연산된다.
1 | a = b = c = 5 // a=5, b=5, c=5 | cs |
: 우선순위가 정해져 있다 하더라고 혼란스워우니 괄호() 를 사용하여 먼저 처리해야하는 것은 묶는것이 좋다.
우선순위
1. 단항, 이항, 삼항 연산자 순으로 우선순위를 갖는다.
2. 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 갖는다.
3. 단항과 대입 연산자를 제외한 모든 연사의 방향은 왼쪽에서 오른쪽으로
4. 복잡한 연산식에는 괄호() 를 사용해서 우선순위를 정해준다.