프로그래밍 언어/JAVA
[JAVA] 연산자와 연산식
김곰댕
2021. 6. 8. 14:19
728x90
연산
데이터를 처리하여 결과를 산출하는 것
연산자 : 연산에 사용되는 표시나 기호 ( +, -, *, /, %, =, ...)
피연산자 : 연산 대상이 되는 데이터 (리터럴, 변수)
연산식 : 연산자와 피연산자를 이용하여 연산의 과정을 기술
b = a + 5 ;
변수 연산자 변수 연산자 리터럴
단항 연산자 (피연산자가 하나) : ++x;
이항 연산자 (두 개의 피연산자) : x + y;
삼항 연산자 (세 개의 피연산자/ ? : 사용) : (sum>90) ? "A" : "B"
//(sum>90)가 true이면 "A" 반환 , false이면 "B"반환
연산자의 종류
연산자 종류 | 연산자 | 피연산자 수 | 산출값 | 기능 설명 |
산술 | +, -, *, /, % | 이항 | 숫자 | 사칙연산 및 나머지 계산 |
부호 | +. - | 단항 | 숫자 | 음수와 양수의 부호 |
문자열 | + | 이항 | 문자열 | 두 문자열을 연결 |
대입 | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= |
이항 | 다양 | 우변의 값을 좌변의 변수에 대입 |
증감 | ++, -- | 단항 | 숫자 | 1만큼 증가/감소 |
비교 | ==, !=, >, <, >=, <=, instanceof | 이항 | boolean | 값의 비교 |
논리 | !, &, |, &&, || | 단항 이항 |
boolean | 논리적 NOT, AND, OR 연산 |
조건 | (조건식) ? A : B | 삼항 | 다양 | 조건식에 따라 A 또는 B 중 하나를 선택 |
비트 | ~, &, |, ^ | 단항 이항 |
숫자 boolean |
비트 NOT, AND, OR, XOR 연산 |
쉬프트 | >>, <<, >>> | 이항 | 숫자 | 비트를 좌측/우측으로 밀어서 이동 |
연산의 방향과 우선 순위
연산자의 우선순위에 따라 연산된다.
동일한 우선 순위의 연산자는 연산 방향이 왼쪽에서 오른쪽으로 수행된다. 하지만 단항연산자(++, --, ~, !), 부호연산자(+, -), 대입연산자(=, +=, -=, ...)는 오른쪽에서 왼쪽으로 연산된다.
a = b = c = 5 ;
위 연산식은 c=5, b=c, a=b 순서로 실행되며, a,b,c의 값은 모두 5가 된다.
연산자 | 연산방향 | 우선 순위 |
증감(++, --), 부호(+, -), 비트(~), 논리(!) | <------------ | 높음 단항>이항>삼항 산술>비교>논리>대입 낮음 |
산술(*, /, %) | ------------> | |
산술(+, -) | ------------> | |
쉬프트(<<, >>, >>>) | ------------> | |
비교(<, >, <=, >=, instanceof) | ------------> | |
비교(==, !=) | ------------> | |
논리(&) | ------------> | |
논리(^) | ------------> | |
논리(|) | ------------> | |
논리(&&) | ------------> | |
논리(||) | ------------> | |
조건(?:) | ------------> | |
대입( =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=) | <------------ |
우선순위 간편 정리
단항 > 이항
곱셈, 나눗셈 > 덧셈, 뺄셈
산술 > 비교
비교 > 논리
대입은 맨 마지막
괄호()는 최우선 순위
728x90