프로그래밍 언어/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