1. 연산자와 피연산자
연산자는 '연산을 수행하는 기호'. 자바에서는 사칙연산(+, -, *, /)을 비롯한 다양한 연산자들을 제공한다.
연산자(operator) : 연산을 수행하는 기호(+, -, *, / 등)
피연산자(operand) : 연산자의 작업 대상(변수, 상수, 리터럴, 수식)
* 'x + 3'이라는 식이 있을 때, '+'는 덧셈 연산자이고, 변수 x와 상수 3은 이 연산자의 피연산자이다.
★ 연산자는 피연산자로 연산을 수행하고 나면 항상 결괏값을 반환한다.
2. 수식과 대입 연산자
수식(exp, expression) : 연산자와 피연산자를 조합하여 계산하고자 하는 바를 표현한 것
평가(eval, evaluation) : 식을 계산하여 결과를 얻는 것
작성한 식을 프로그램에 포함시키려면, 식의 끝에 ';'를 붙여서 문장으로 만들어야 하며, 대입 연산자 '='를 사용해서 변수와 같이 값을 저장할 수 있는 공간에 결과를 저장해야 한다.
4 * x + 3; // 문장(statement)
4 * 5 + 3; // 변수의 값이 5일 경우
-> 23; // 결과는 얻었지만 쓰이지 않고 사라짐
y = 4 * x + 3;
y = 4 * 5 + 3;
-> y = 23; // 식의 평가결과가 변수 y에 저장
변수 y에 저장된 값은 다른 곳에 사용하거나 화면에 출력할 수 있다.
y = 4 * x + 3;
System.out.println(y); // 변수 y의 값을 화면에 출력
식의 평가결과를 출력하기만 원할 뿐, 이 값을 다른 곳에 사용하지 않을 것이라면 println 메서드의 괄호( ) 안에 직접 식을 써도 된다.
System.out.println(4 * x + 3);
System.out.println(23); //23이 화면에 출력
3. 연산자의 종류
종류 | 연산자 | 설명 |
산술 연산자 | + - * / % << >> | 사칙연산(+, -, *, /)과 나머지 연산(%) |
비교 연산자 | > < >= <= == != | '크고 작음'과 '같고 다름'을 비교 |
논리 연산자 | && || ! & | ^ ~ | '그리고(and)'와 '또는(or)'으로 조건을 연결 |
대입 연산자 | = | 우변의 값을 좌변에 저장 |
기 타 | (type) ?: instanceof | 형변환 연산자, 삼항 연산자, instanceof 연산자 |
- 피연산자의 개수에 의한 분류
피연산자의 개수가 하나면 '단항 연산자', 두 개면 '이항 연산자', 세 개면 '삼항 연산자'이다.
* 삼항 연산자는 '?:' 하나뿐이다.
4. 연산자의 결합 규칙
1. 산술 > 비교 > 논리 > 대입. 대입은 제일 마지막에 수행된다.
2. 단항(1) > 이항(2) > 삼항(3). 단항 연산자의 우선순위가 이항 연산자보다 높다.
3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.
참고문헌 : 남궁성(2016), Java의 정석, 도우출판