(JAVA)연산자와 연산식
연산자(Operator)
-연산에 사용되는 표시나 기호(ex) +, -, *, /)
피연산자(operand)
-연산자와 함께 연산되는 데이터(ex) x+y 식중에 x, y는 피연산자)
연산식(Expression)
- 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
-연산식은 반드시 하나의 값을 산출한다.
자바에서 제공하는 연산자
연산자 종류 | 연산자 | 피연산자 수 | 산출값 | 기능 |
산술 | +, -, *, / ,% | 이항 | 숫자 | 사칙연산 및 나머지 계산 |
부호 | +, - | 단항 | 숫자 | 음수와 양수의 부호 |
문자열 | + | 이항 | 문자열 | 두 문자열을 연결 |
대입 | =, +=, -=, *=, /=, %= | 이항 | 다양 | 우변의 값을 좌변으 변수에 대입 |
증감 | ++, -- | 단항 | 숫자 | 1만큼 증가/감소 |
비교 | ==, !=, >, <, >=, <=, instanceof |
이항 | boolean | 값의 비교 |
논리 | !, &, |, &&, || | 단항,이항 | boolean | 논리 부정, 논리곱, 논리합 |
조건 | (조건식)?A:B | 삼항 | 다양 | 조건에 따라 A 또는 B중 하나를 선택 |
단항 연산자: 피연산자수가 1개인 연산자
이항 연산자: 피연산자수가 2개인 연산자
삼항 연산자: 피연산자수가 3개인 연산자
연산의 방향과 우선순위
1.단항, 이항, 삼항 연산자 순으로 우선순위를 가진다.
2.산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다.
3.단항, 부호, 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽이다.(단항, 부호, 대입 연산자는 반대)
4.복잡한 연산식에는 괄호 ()를 사용해서 우선순위를 정한
다.
논리 연산자
-논리곱(&&), 논리합(||), 배타적 논리합(^), 논리 부정(!)연산을 수행한다.
-피연산자는 boolean타입만
구분 | 연산식 | 결과 | 설명 | ||
AND(논리곱) | true | && 또는 & |
true | true | 피연산자 모두가 true일 경우에만 연산 결과가 true |
true | false | false | |||
false | true | false | |||
false | false | false | |||
OR(논리합) | true | || 또는 | |
true | true | 피연산자 중 하나만 true이면 연산 결과는 true |
true | false | true | |||
false | true | true | |||
false | false | false | |||
XOR(배타적 논리합) | true | ^ | true | false | 피연산자가 하나는 true이고 다른 하나가 false일 경우에만 연산 결과가 true |
true | false | true | |||
false | true | true | |||
false | false | false | |||
NOT(논리부정) | ! | true | false | 피연산자의 논리값을 바꿈 | |
false | true |
&&과 &, ||과 |의 차이
&&는 먼저나온 피연산자가 false이면 뒤의 피연산자를 평가하지 않고 바로 false라는 결과를 산출한다.
&는 두 피연산자 모두를 평가해서 결과를 산출한다.
||는 먼저 나온 피연산자가 true이면 뒤의 피연산자를 평가하지않고 true라는 결과를 산출한다.
|는 두 피연산자 모두를 평가해서 결과를 산출한다.
삼항 연산자
(조건식) ? (1값 또는 연산식) : (2값 또는 연산식)의 형태
?앞의 조건식이 true이면 1번 값 또는 연산식이 결과로 나오고
false이면 2번 값 또는 연산식이 결과가 된다.
ex)
int score=95
char grade = (score > 90 ) ? 'A' : 'B'
score가 95이고 score > 90 조건식을 만족해서 조건식의 결과는 true가 되고 조건식이 true이기때문에 grade변수에는 'A'가 저장된다.