adavaj P(출처 이것이 자바다)/연산자

chapter03 연산자01

Hesitater 2021. 9. 4. 14:04
728x90

3.1 연산자와 연산식

프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산(operations)이라고한다.
연산에 사용되는 표시나 기호를 연산자(operator)라 하고,
연산되는 데이터는 피연산자(operand) 라고 한다.
연산자와 피연산자를 이요하여 연산으 ㅣ과정을 기술한 것을 연산식(exeperssions) 라고함

ex_ +,-,*,==은 연산자, x,y,z 변수는 피연산자이다.
x + y,  x - y, ( x * y) + z , x == y 

자바에서 다양한 연산자를 제공합니다. 이 연산자들은 피연산자를 연산해서 값을 산출하는데,
산출되는 값의 타입은 연산자별로 다르다.
산술 연산자일 경우 숫자타입(byte, short, int, long, float, double)으로 겺과값이 나오고
비교 연산자와 논리 연산자는 논리(boolean) 타입으로 나온다

연산자종류 연산자 피연산자 수  산출값  기능설명
산술 +, -, *, /, % 이항 숫자 사칙연산 및 나머지계산
부호 +, - 단항 숫자 음수와 양수의 부호
문자열 + 이항 문자열 두 문자열을 연결
대입 =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= 이항 다양 우변의 값을 좌변의 변수에 대입
증감 ++, -- 단항 숫자 1만큼 증가/ 감소
비교 ==, !=, >, <, >=, <=, 
instanceof
이항 boolean 값의 비교
논리 !, &, |, &&, || 단항, 이항 boolean 논리적 NOT, AND, OR 연산

 

연산자종류 연산자 피연산자 수 산출값 기능설명
조건 (조건식) ? A : B 삼항 다양 조건식에 따라 A or B선택
비트 ~, &, |, ^ 단항 이항 숫자 , boolean 비트 NOT, AND, OR, XOR 연산
쉬프트 >>, << , >>> 이항 숫자 비트를 좌측/우측으로 밀어서이동

다 쓰긴 썻는데 잘모르는것도 있고 흔히 아는것도 있습니다.
지금현재에서는 쓰는건 잘쓰고 모르는게 나올때 설명 보고 검색해서 알아봅시다

조건 비트 쉬프트쪽은 정확히는 이해하기 힘들네요 그때그때 나오면 공부합시다.

연산자는 피연산자의 수에 따라 단항, 이항, 삼항 연산자로 구분된다
자세한건... 책 참조
ex)
단항연산자 : ++x;
이항 연산자 : x + y;
삼항 연산자 : (sum>90) ? "A" : "B";

연산식은 반드시 하나의 값을 산출한다. 연산자 수가 많아도 두개 이상의 값을 산출하는 연산식은 없다.
때문에 하나의 값이 올 수 있는 곳이면 어디든지 값 대신에 연산식을 사용 가능
보통 연산식의 변수에 젖아하는데, 다음과 같이 x 와 y 변수의 값을 더하고 나서 result에 저장함

ex) int result = x + y ;

연산식은 다른 연산식의 피연산자 위치에도 올 수 있다. 
비교연산자를 사용하여  결과값(true or false)을 result 변수에 저장함

ex)   boolean result = (x +y) < 5;

 

3.2 연산의 방향과 우선 순위

연산식에는 다양한 연산자가 복합적으로 구성된 경우가 많습니다.
우리가 아는 곱셈,나눗셈이 덧셈뺄셈보다 우선처리 됩니다.
예를 들어 && 연산자 or >, < 연산자 처리는 무엇이먼저될까?

ex) x > y && y < 0

프로그램에서는 연산자의 연산 방향과 연산자 간의 우선순위가 정해져있다.
&&보다는 > , < 가 우선순위가 높기 때문에
x> 0 과 y <0 이 먼저 처리되고, &&는 x>0 과 0< y의 산출값을 가지고 연산하게된다.

우선순위가 같은 연산자들끼리는 연산의 방향에 따라 달라집니다.
대부분의 연산자는 왼쪽에서 오른쪽으로 연산을 시작합니다

ex) 100*2 / 3 % 5

*, /, % 같은 우선순위를 갖고있다. 연산방향은 왼쪽에서 오른쪽으로 수행됨
100*2 에서 200나오고, 200 / 3 에서 66이 나오고, 66 % 5 가 연산되어 1이나옵니다

하지만 단항 연산자( ++, --, ~, !), 부호 연산자 ( +, -), 대입 연산자( =, +=, -=,...)
는 오른쪽에서 왼쪽으로 연산됩니다

ex)     a  =  b  =  c  = 5;

위 연산식은 c =5,  b= c, a = b 순서로 실행된다. 실행되고 난후에는 a,b,c,의 값이 모두 5가 된다.
어떤 연산자를 사용하느냐에 따라 연산의 방향과 우선순위가 정해져 있기 때문에
복잡한 연산식에서  주의하면서사용 해야함

 

인터넷에서 찾아온 표를 참조..

예시

결과값

result는 var2*var3 먼저 계산한것
result2는 괄호안에있는 var1 + var2 계산후 var3을 곱한값


연산의 방향과 우선순위를 정리
1. 단항,이항,삼항 연산자 순으로 우선순위를 가진다.
2. 산술,비교,논리,대입 연산자 순으로 우선순위를 가진다.
3. 단항과 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽
4. 복잡한 연산식에는 괄호()를 사용해서 우선순위를 정해준다

 



 특히 괄호를 잘 사용해야 한다고 합니다.

'adavaj P(출처 이것이 자바다) > 연산자' 카테고리의 다른 글

chapter03 연산자 확인문제  (0) 2021.09.07
chapter03 연산자04  (0) 2021.09.04
chapter03 연산자03  (0) 2021.09.04