본문 바로가기
JAVA/자바 문법

연산자

by chogigang 2023. 2. 20.

 

 

 

 

 

  1. 연산자 우선순위 및 연관성: 이 섹션에서는 Java에서 연산자 평가 순서가 결정되는 방법과 평가 순서를 수정하기 위해 괄호를 사용하는 방법을 설명합니다.
  2. 산술 연산자: 이 섹션에서는 더하기, 빼기, 곱하기, 나누기 및 모듈러스를 포함하여 Java의 표준 산술 연산자를 다룹니다. 또한 피연산자의 유형이 다른 이러한 연산자의 동작과 오버플로 및 언더플로의 가능성에 대해 설명합니다.
  3. 증가 및 감소 연산자: 이 섹션에서는 증가 및 감소 연산자에 대해 설명합니다. 접두사 및 접미사 형식을 포함하여 변수 값을 수정하는 데 사용되는 방법입니다.
  4. 관계 연산자: 이 섹션에서는 Java의 관계 연산자(항등, 부등식 포함)를 다룹니다. , 보다 큼, 보다 작음, 보다 크거나 같음, 보다 작거나 같음. 또한 피연산자의 유형이 다른 이러한 연산자의 동작을 설명합니다.
  5. 논리 연산자: 이 섹션에서는 AND, OR 및 NOT을 포함하여 Java의 논리 연산자를 다룹니다. 또한 논리 연산자의 단락 평가 및 연산자 우선 순위에 대해 설명합니다.
  6. 비트 연산자: 이 섹션에서는 AND, OR, XOR, NOT, 왼쪽을 포함하여 Java의 비트 연산자를 다룹니다. 시프트, 오른쪽 시프트 및 부호 없는 오른쪽 시프트. 또한 다양한 유형의 피연산자를 사용하는 이러한 연산자의 동작을 설명합니다.
     비트 연산자  예시 https://cbh2031.tistory.com/69
  7. 할당 연산자: 이 섹션에서는 단순 할당, 복합 할당 및 삼항 연산자를 포함하여 Java의 할당 연산자를 다룹니다. 연산자입니다.
  8. 조건 연산자: 이 섹션에서는 조건 연산자(삼항 연산자라고도 함)에 대해 설명합니다. 조건 연산자는 if-else 문을 간략하게 작성하는 방법입니다.
  9. 연산자 오버로딩: 이 섹션에서는 Java가 사용자 정의 유형과 함께 사용될 때 연산자에 대한 사용자 정의 동작을 정의하는 기능인 연산자 오버로딩을 지원하지 않는다고 설명합니다.

 

 

 연산자(Operator) : 어떠한 기능을 수행하는 기호(+, -, *, / 등)

- 피연산자(Operand) : 연산자의 작업 대상(변수, 상수, 리터럴, 수식)

 

2. 연산자의 종류

- 단항 연산자 : +, -, (타입), ++, --, ~, !

- 이항 연산자

    - 산술 : +, -, *, /, %, <<, >>, >>>

    - 비교 : >, <, >=, <=, ==. !=

    - 논리 : &&(and), ||(or), &(비트곱), ^(비트차,x-or ), |(비트합)   //     ( ^ , | , & ) 2진법으로 특정값을 유지 하고 싶을 때 비트 연산자를 사용해야합니다.(and,not,or,x-or) 

- 삼항 연산자 : ? :

- 대입 연산자 : =, op=

 

3. 연산자의 우선순위

(우선순위 높음) 단항 연산자 > 산술 연산자 > 비교 연산자 > 논리 연산자 > 삼항 연산자 > 대입 연산자 (우선순위 제일 낮습니다.)

- 괄호의 우선순위가 제일 높습니다.

- 산술 > 비교 > 논리 > 대입

- 단항 > 이항 > 삼항

- 곱셈, 나눗셈 > 덧셈, 뺄셈

- 연산자의 연산 진행 방향 : 왼쪽에서 오른쪽 (->)

- 단항, 대입 연산자 진행 방향 : 오른쪽에서 왼쪽 (<-)

- <<, >>, >>>는 덧셈 연산자보다 우선순위가 낮습니다.

- ||, |(OR)는 &&, &(AND)보다 우선순위가 낮습니다.

 

4. 증감 연산자 (++, --)

- 전위형 : ++i; -> 값이 참조되기 전에 증가

- 후위형 : i++; -> 값이 참조된 후에 증가

 

5. 부호 연산자(+, -)와 논리 부정 연산자(!)

- 부호 연산자 (+, -) : +는 피연산자에 1을 곱하고, -는 피연산자에 -1을 곱합니다.

int i = -10;

i = +i;

i = -i;

- 논리 부정 연산자 (!) : true는 false로, false는 true로. 피연산자가 boolean일 때만 사용 가능합니다.

 

6. 비트 전환 연산자 (~)

- 정수를 2진수로 표현했을 때, 1을 0으로 0을 1로 바꾼다. 정수형에만 사용 가능합니다.

 

7. 이항 연산자의 특징

- 이항 연산자는 연산을 수행하기 전에 피연산자의 타입을 일치시킵니다.

- int보다 크기가 작은 타입은 int로 변환 (byte, char, short -> int)

- 피연산자 중 표현 범위가 큰 타입으로 형 변환

char + int -> int + int -> int

float + int -> float + float -> float

long + float -> float + float -> float

float + double -> double + double -> double

- Math.round() : 소수점 첫째 자리에서 반올림한 값을 반환

Math.round(3141.592f) -> 3142

 

8. 나머지 연산자 (%)

- 나누기 한 나머지를 반환

- 홀수, 짝수 등 배수 검사에 주로 사용합니다.

 

9. 쉬프트 연산자 (<<, >>, >>>)

- 2ⁿ으로 곱하거나 나눈 결과를 반환

- 곱셈, 나눗셈보다 빠르다

x << n -> x * 2ⁿ

x >> n -> x / 2ⁿ

8 << 2 -> 8 * 2²

8 >> 2 -> 8 / 2²

 

10. 비교 연산자 (>, <, >=, <=, ==, !=)

- 피연산자를 같은 타입으로 변환한 후에 비교

- 결과 값은 true 또는 false

- 기본형(boolean 제외)과 참조형에 사용할 수 있으나, 참조형에는 ==와 !=만 사용할 수 있습니다.

 

11. 비트 연산자 (&, |, ^)

- 피연산자를 비트 단위로 연산한다.

- 실수형(float, double)을 제외한 모든 기본형에서 사용 가능합니다.

- OR 연산자 (|) : 피연산자 중 어느 한쪽이 1이면 1

- AND 연산자 (&) : 피연산자 양 쪽 모두 1이면 1

- XOR연산자 (^) : 피연산자가 서로 다를 때 1

 

12. 논리 연산자 (&&, ||)

- 피연산자가 반드시 boolean이어야 하며 연산 결과도 boolean입니다.

- &&가 ||보다 우선순위가 높다. && > ||

- OR 연산자 (||) : 피연산자 중 어느 한 쪽이 true이면 true

- AND 연산자 (&&) : 피연산자 양 쪽 모두 true이면 true

 

13. 삼항 연산자 (? :)

- 조건식의 연산 결과가 true이면 '식 1'의 결과를 반환, false이면 '식 2'의 결과를 반환합니다.

(조건식) ? 식 1 : 식 2

 

14. 대입 연산자 (=, op=)

- 오른쪽 피연산자의 값을 왼쪽 피연산자에 저장. 단, 왼쪽 피연산자는 상수가 아니어야 한다.

op= =
i += 3; i = i + 3;
i -= 3; i = i - 3;
i *= 3; i = i * 3;
i /= 3; i = i / 3;
i %= 3; i = i % 3;
i <<= 3; i = i << 3;
i >>= 3; i = i >> 3;
i >>>= 3; i = i >>> 3;
i &= 3; i = i & 3;
i ^= 3; i = i ^ 3;
i |= 3; i = i | 3;
i *= 10 + j; i = i * (10 + j);

 

'JAVA > 자바 문법' 카테고리의 다른 글

if,for,while /try-catch  (0) 2023.04.10
배열  (2) 2023.02.21
변수  (0) 2023.02.20