* 연산 : 주어진 식을 계산하여 결과를 얻어내는 과정.
- 피연산자 : 연산자의 작업 대상(예 : 20 + 10 ===> 20, 10 피연산자라고 함)
* java에서 연산자의 종류
(1~5번은 자주 쓰이니 알아둘 것, 더 많은데 다 알 필요는 없음, 특히 6,7번은 그냥 있다 라는 정도만~)
1. 산술연산자
2. 관계연산자(비교연산자)
3. 논리연산자
4. 단항연산자 / 3항연산자
5. 배정연산자 / 단축배정연산자
6. 비트연산자
7. 쉬프트연산자
1. 산술연산자
- 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)
* 나머지(%) 연산자.
- 나머지를 구하는 연산자.
- 홀수, 짝수를 판별할 때 많이 사용
- 배수 판별 시에도 사용
2. 관계연산자(비교연산자)
>=(크거나 같은지), >(큰지), <=(작거나 같은지), <(작은지), ==(같은지), !=(같지 않은지)
- 결과는 boolean형으로 반환됨. ==> true / false로 결과가 나옴
- 관계 연산자는 제어문(조건문)에서 많이 사용되는 연산자.
3. 논리 연산자
- 논리곱(&&) : 주어진 조건이 모두 참일 때 결과가 true가 됨.
그 나머지는 모두 false가 됨.
- 논리합(||) : 주어진 조건 중 하나라도 참이면 결과는 true가 됨.
그 나머지는 모두 false가 됨.
- 부 정(!) : true -> false가 되고 false -> true가 됨.
- 논리연산자는 우선적으로 관계연산자를 실행한 후에 그 결과값을 가지고 논리연산을 수행하게 됨.
4. 단항연산자 / 이항연산자 / 3항연산자
- 단항연산자 : 1개의 항을 대상으로 연산을 수행.
* 전위연산자 : 단항연산자가 변수명 앞에 온다.(ex. ++su3 or --su3)
변수의 값을 하나 증가 또는 감소 시킨 후 처리한다.
* 후위연산자 : 단항연산자가 변수명 뒤에 온다.(ex. su4++ or su4--)
변수를 처리한 후에 값을 하나 증가 또는 감소 시킨다.
- 이항연산자 : 2개의 항을 대상으로 연산을 수행.
- 3항 연산자 : 3개의 항을 대상으로 연산을 수행. 간단한 조건문 대신에 사용할 수 있는 연산자.
형식) (조건) ? 수식1 : 수식2;
==> 수식1 : 해당 조건이 참인 경우 실행 문장.
==> 수식2 : 해당 조건이 거짓인 경우 실행 문장.
3항연산자 예문)
결과값)
5. 배정연산자 / 단축배정연산자
- 배정연산자
형식) 변수 = 변수 or 값 or 수식;
- 좌변에는 항상 변수명이 온다.
- 우변에는 숫자, 변수명, 수식이 온다.
- 단축배정연산자 : 배정연산자를 간편하게 사용하는 연산자.
베정연산자 예문)
6. 비트연산자
- 비트(0,1)를 이용하여 연산하는 연산자.
- &(and) : 두 비트의 조건이 참(1)인 경우 1을 반환, 그 외에는 0을 반환.
- |(or) : 두 비트 중 하나만 조건이 참(1)이어도 경우 1을 반환, 그 외에는 0을 반환.
- ^(xor) : 두 비트 중 서로 다른 경우에만 1을 반환, 그 외에는 0을 반환.
비트연산자 예문
7. 쉬프트연산자
- 비트를 대상으로 왼쪽 / 오른쪽으로 비트를 밀어서 연산을 수행하는 연산자.
- 왼쪽쉬프트(<<) : 왼쪽으로 비트수만큼 이동하라는 의미.
오른쪽에 비어 있는 빈 칸은 0으로 채워줌.
- 오른쪽쉬프트(>>) : 오른쪽으로 비트수만큼 이동하라는 의미.
왼쪽에 비어 있는 빈 칸은 부호비트로 채워줌.
- 오른쪽쉬프트(>>>) : 오른쪽으로 비트수만큼 이동하라는 의미.
왼쪽에 비어 있는 빈 칸은 0으로 채워줌.
쉬프트연산자 예문)
연산자 우선순위
프로그램의 실행 흐름은 연산자 우선순위에 의해 결정됨
연산자 | |
1 | (....) : 괄호 먼저 계산 |
2 | * : 곱셈 / : 나눗셈 |
3 | + : 덧셈 - : 뺄셈 |
4 | = : 대입 |
같은 우선순위의 경우, 왼쪽에서 오른쪽으로 연산 |
'Back-End > Java' 카테고리의 다른 글
[Java] 조건문 if문 (0) | 2021.08.08 |
---|---|
[Java] 이클립스에서 명령행 인자 입력방법 (0) | 2021.08.08 |
[Java] 자료형(실수 자료형, 단일 문자형, 논리 자료형) (0) | 2021.08.04 |
[Java] 형변환(casting) (묵시적 형변환, 명시적 형변환) (0) | 2021.08.04 |
프로그래밍 언어와 자바(Java)의 특징 및 개발환경 (0) | 2021.08.04 |
댓글